Vim 简介

Vim 是字符模式下的一种文本编辑器,不需要图形界面,它是 Vi 的一个发展。
Vim 与常见文本编辑器的区别在于,它有四种模式,“正常模式”“插入模式”“命令模式”“可视模式”。

插入模式是最正常的文本。

打开

使用 vim <filename> 来打开文件,或新建一个文件。

Vim的四种模式

Vim 打开后进入正常模式,通过一些命令可以进入插入模式。

通过输入:进入命令模式,光标会移动到窗户左下角,这种模式下,可以对文件和环境做一些操作。

通过输入 vV 进入可视模式,可以选择一部分文本,然后对其进行操作。

通过 Esc 键从其他模式返回正常模式。

当不知道处在什么模式的时候,可以多敲几次 Esc 来返回正常模式。

一些命令

这里只罗列一些基本操作所需要的命令,如果想了解 Vim 全部命令,可以输入 vimtutor

这些命令都是在正常模式中输入的,其实相当一部分命令可以当做快捷键,这样便于理解。

所有的命令最好在 Vim 下进行尝试。

插入

这一部分命令只使用了键盘上的一个按键,直接敲击即可,可以认为它们是一些快捷键。

这些命令使得 Vim 从正常模式进入插入模式。

这里把大写和小写放在了同一行,应该知道它们是两种命令,功能上有所相似。

i I     在光标前插入 在光标所在行头插入
a A 在光标后插入 在光标所在行尾插入
o O 在光标所在行下一行插入新行 在光标所在行前一行插入新行

移动

在正常模式下移动光标所用的命令。

在一些版本的 Vim 中,在插入模式下可以使用方向键来移动光标,比如 NOI Linux。

h j k l    分别为 左 下 上 右
gg 到文件头
G 到文件尾
<n>G 移动到第<n>行,例如移动到第 10 行,敲击键盘上对应按键 10G 即可
ctrl+f 下一页(相当于 page down)
ctrl+b 上一页(相当于 page up)
zz 光标所在行居中

文件

这一部分命令,首先输入 :,光标将出现在屏幕最下方,输入指令后敲击 Enter 来执行。这部分命令是可以组合的,如输入 :wq,可以在后面添加 ! 来强制执行,如 :wq!

:w      写入
:q 退出

编辑

x       删除当前字母
dd 剪切当前行
gg=G 整理全文代码缩进
V 选择部分行(从光标所在行开始,通过jk移动选择)
d 剪切
y 复制
p 粘贴,在正常模式
u 撤销
ctrl+r 反撤销

环境设置

Vim 中有一些属性通过设置来调整。

:set ai             自动缩进
:set nu 显示行号(number)
:set ts=4 TAB 的宽度为 4
:set expandtab 将TAB替换为空格

.vimrc

如果不想每次打开 Vim 的时候都设置一遍环境,可以写一个 .vimrc 文件,每次打开 Vim 的时候都会先执行一次。

~/ 下创建 .vimrc 文件,输入例如 set ai,即省略 :

更多命令

环境设置

:set fdm=indent     设置按缩进分层折叠代码
:set sw=4 设置宽度为 4 的缩进为一层,用于折叠

折叠

zm      关闭所有折叠
zM 关闭所有折叠及其嵌套的折叠
zr 打开所有折叠
zR 打开所有折叠及其嵌套的折叠
za 关闭、打开光标下的折叠
zA 关闭、打开光标下的折叠及其嵌套
[z 到当前打开折叠的开始
]z 到当前打开折叠的结束

显示

:vsplit <文件名>       分屏显示另一文档(竖直分割)

Vim 入门的更多相关文章

  1. Vim入门基础

    公司新员工学习有用到,Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础.在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来.特点是偏向基础,但对入门者来说足够全面 ...

  2. Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

    距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...

  3. Vim入门操作整理

    根据小甲鱼的vim入门视频整理,供查阅 移动指令:上下左右 k j h l 翻页: ctrl + b  ctrl + f 保存退出:ZZ 普通模式:vim fileName 首次进入的就是普通模式 从 ...

  4. Vim 入门教程

    Vim 入门教程 转载请保留以上信息 Vim 的教程相对比较零散,系统的教程比较少,我也阅读过不少教程,走过很 多弯路.借着 Vim-china 组织组建这一契机,整理下自己学习过的内容, 分享给大家 ...

  5. vim入门过程

    先下载了一本VIM的用户手册. 看到可以使用vimtutor(VIM的入门教程,很不错,由浅入深)作为入门. Unix系统中,请在命令行输入:vimtutor,进入教程. MS-Windows系统中, ...

  6. [vim] vim入门

    1. 概述 工欲善其事 必先利其器.vim是非常好用的文本编辑器,可以将它看作是vi的进阶.绝大多数Unix系统都会内置vi编辑器,vi是文本编辑器,vim是程序编辑器.相比vi,它可以根据文件的类型 ...

  7. Vim入门学习之Vim解析

    Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本:   官网: http://www.vim.org/==================== ...

  8. Vim入门教程

    尽管网上有成打的Vim在线教程,但是要么艰深晦涩,要么太过肤浅.本教程的目标让每个阶段都有斩获,从理解它的哲学(将和你终身相伴)到超越现在编辑技巧,成为其中的牛人. 简单来说,本教程的学习方式将使你终 ...

  9. Maxiee的Vim入门日记(4)——安装windows下的Cscope

    Maxiee今天又学到了一个插件——Cscope.Cscope 是一款用于查看大型工程中的代码的软件.它使用方便,支持快速查找 C Symbol.function 等在工程中所有出现的位置,而不用自己 ...

  10. Vim 入门:基础

    为工作或者新项目学习足够的 Vim 知识. -- Bryant Son 我还清晰地记得我第一次接触 Vim 的时候.那时我还是一名大学生,计算机学院的机房里都装着 Ubuntu 系统.尽管我在上大学前 ...

随机推荐

  1. The real universe

  2. 如何使用git把本地代码上传到远程仓库上

    初始化 git init 查看当前仓库状态 git status 将项目的文件添加到仓库中 git add test.txt git add -A git add . 将add的文件commit到仓库 ...

  3. Spring整合MyBatis整合

    1.导入所需要的jar依赖 !--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis&l ...

  4. MyBatis智能标签!

    if 语句 <select id="getOne" resultType="com.mybatis.entity.SmbmsProviderEntity" ...

  5. linux高性能服务器编程 (九) --I/O复用

    第九章 I/O复用 I/O复用就是一个线程可以同时监听多个文件描述符,提高程序性能.虽然I/O复用可以同时监听多个文件描述符,但是它本身是阻塞的,如果多个文件描述符准备就绪,如果不采取措施它仍然是串行 ...

  6. python 获取文件本身的绝对路径

    tester.py: import os print (os.path.dirname(__file__)) print (os.path.abspath(__file__)) print (os.p ...

  7. 分布式id的生成方式——雪花算法

    雪花算法是twitter开源的一个算法. 由64位0或1组成,其中41位是时间戳,10位工作机器id,12位序列号,该类通过方法nextID()实现id的生成,用Long数据类型去存储. 我们使用id ...

  8. [算法模板]倍增求LCA

    倍增LCA \(fa[a][i]\)代表a的第\(2^{i}\)个祖先. 主体思路是枚举二进制位,让两个查询节点跳到同一高度然后再向上跳相同高度找LCA. int fa[N][21], dep[N]; ...

  9. HttpClient 连接泄漏问题

    AbstractConnPool.java 提交记录 https://github.com/apache/httpcomponents-core/commits/4.4.x/httpcore/src/ ...

  10. Densely semantically aligned person re-identification

    Densely semantically aligned person re-identification https://arxiv.org/abs/1812.08967