Vim 常用命令快捷查询

参考内容 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\ 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 版下载链接在这里

image.png

Linux编程基础