参考内容
Learning Vim The Pragmatic Way
《鸟哥的 Linux 私房菜》
Vim 可以认为是 Vi 的高级版本,Vim 可以用颜色或下划线的方式来显示一些特殊信息,您可以认为 Vi 是一个文本处理工具,而 Vim 是一个程序开发工具,现在大部分 Linux 的发行版都以 Vim 替换 Vi 了。在 Linux 命令行模式下有很多编辑器,但是 Vi 文本编辑器是所有 Unix-like 系统都会内置的,因此学会 Vi/Vim 的使用时非常有必要的,对于 Vi 的三种模式(命令模式、编辑模式、命令行模式)这里就不在做说明了,下面是一些比较常用的命令。
一般命令模式下
命令 | 说明 |
---|---|
h、j、k、l | 与键盘的方向键一一对应,分别为左、下、上、右,在键盘上着几个字母是排在一起的 |
Ctrl+f、Ctrl+b | 分别对应键盘的「Page Down」、「Page Up」,我更习惯于这两个键,而不是前面的组合键 |
0、$ | 分别对应键盘的「Home」、「End」,即移动到该行的最前面/后面字符处 |
n<Enter> | n 为数字,光标向下移动 n 行 |
/word、?word | 向光标之上/下寻找一个字符串名称为 word 的字符串 |
n、N | 如果我们刚刚执行了上面上面的 /word 或 ?word 查找操作,那么 n 则表示重复前一个查找操作,可以简单理解为向下继续查找下一个名称为 word 的字符串,N 则与 n 刚好相反 |
:n1,n2s/word1/word2/g | 在第 n1 行与 n2 行之间寻找 word1 这个字符串,并将这个字符串替换为 word2,如果前面的 n1,n2 使用 1,$ 代替则表示从第一行到最后一行,最后的 g 后面可以加个 c,即 :1,$s/word1/word2/gc,这样就会在替换钱显示提示字符给用户确认(confirm) |
x、X | 分别对应键盘的「Del」、「Backspace」键 |
dd、yy | 删除/复制光标所在的那一整行 |
p、P | p 将已复制的数据在光标下一行粘贴,P 粘贴在光标上一行 |
u | 恢复前一个操作,类似于 Windows 下的 Ctrl+Z |
Ctrl+r | 重做上一个操作 |
. | 小数点,重复上一个操作 |
命令行模式下
命令 | 说明 |
---|---|
:w | 将编辑的数据写入硬盘中 |
:w! | 若文件属性为只读,强制写入该文件,不过到底能不能写入,还是跟文件权限有关系 |
:q、:q! | 与 w 一样,q 为关闭的意思 |
:r [filename] | 在编辑的数据中读入另一个文件的数据,即将[filename]这个文件的内容追加到光标所在行的后面 |
:w [filename] | 将编辑的数据保存为另一个文件 |
:set nu/nonu | 显示/不显示行号 |
编辑模式下
组合键 | 作用 |
---|---|
[ctrl]+x -> [ctrl]+n | 通过目前正在编辑的这个文件的内容文字作为关键字,予以自动补全 |
[ctrl]+x -> [ctrl]+f | 以当前目录内的文件名作为关键字补全 |
[ctrl]+x -> [ctrl]+o | 以扩展名作为语法补充,以 Vim 内置的关键字予以补全 |
当我们在使用 Vim 编辑器的时候,Vim 会在与被编辑的文件目录下再建立一个名为.filename.swp
的文件,我们对文件的操作都会记录到这个 swp 文件中去,如果系统因为某些原因掉线了,就可以利用这个 swp 文件来恢复内容。如果存在对应的 swp 文件,那么 Vim 就会主动判断当前这个文件可能有问题,会给出相应的提示。
我们也可以给 Vim 环境设置一些个性化的参数,虽然在命令行模式下可以使用:set
来设置,但是这样每次设置实在是太麻烦,因此我们可以设置一些全局的参数。Vim 的整体设置值一般放在/etc/vimrc
中,我们一般通过修改~/.vimrc
这个文件(默认不存在)来设置一些自己的参数,比如:
" 该文件的双引号是注释
set nu "在每一行的最前面显示行号
set autoindent " 自动缩进
set ruler " 可显示最后一行的状态
set bg=dark " 显示不同的底色色调
syntax on "进行语法检验,颜色显示,比如 C 语言等
最后附上一张命令速查卡,此图来源于Learning Vim The Pragmatic Way,PDF 版下载链接在这里。