运维日记006 - vim操作总结(二、常用命令)
vim有三种基本操作模式:命令模式、编辑模式和命令行模式。
命令模式
启动vim即进入命令模式,在其他的模式下,也可以通过按ESC键进入命令模式。在该模式下,可以控制光标的移动或者进行剪切、复制粘贴或者删除文本等操作。在该模式下我们需要记忆的快捷键是最多的。去粗取精,我总结了以下命令。
- 光标定位类命令
按键组合 | 说明 |
---|---|
gg | 光标定位文件首行 |
G | 光标定位在文件末行 |
nG | n为数字,光标定位到第n行 |
n[Enter] | n为数字,光标向下移动n行 |
n[Space] | n为数字,光标向右移动n个字符 |
0或Home | 光标定位到行首 |
$或End | 光标定位到行尾 |
方向键 | 控制光标上下左右移动 |
- 文档编辑类命令
按键组合 | 说明 |
---|---|
i | 进入编辑模式(离开命令模式),在光标当前位置插入字符 |
a | 先将光标移到下一个字符,然后进入插入模式 |
o | 在当前行后开启一个空白行,然后光标定位在空白行首,并进入插入模式 |
r | 进入替换模式,替换当前光标位置的字符 |
x | 删除当前光标位置的字符 |
dd | 剪切当前行 |
ndd | n为数字,剪切当前行开始的n行 |
m,nd | m,n为数字,剪切m-n行 |
D | 删除当前字符至行尾 |
yy | 复制当前行 |
nyy | n为数字,复制当前行开始的n行 |
p(小写) | 在当前光标位置之后粘贴 |
P(大写) | 在当前光标位置之前粘贴 |
u | Undo,撤销刚才的操作 |
CTRL+r | Redo,还原刚才的撤销 |
编辑模式
在命令模式下,通过i(insert)、a(append)、r(replace)或o进入编辑模式。在该模式下主要是输入文本,没有什么好说的。编辑模式和命令行模式之间没有直接通道,必须经由命令模式过渡。按ESC可返回命令模式。
命令行模式
在命令模式下,通过:或/或?进入命令行模式。其中/和?一般是进行文本查找。
- 一般命令
命令 | 说明 |
---|---|
:q | 不保存文件并退出 |
:q! | 强制不保存文件并退出 |
:wq | 保存文件并退出 |
:!cmd | 启动一个subshell来执行cmd |
:n | 切换到下一个文件(假如你指定打开了多个文件的话) |
:数字 | 跳转到指定行 |
- 查找与替换命令
命令 | 说明 |
---|---|
/pattern | 往前搜索pattern |
?pattern | 往后搜索pattern |
n | 寻找下一个匹配的文本 |
N | 反方向寻找下一个匹配的文本 |
:s/word1/word2 | 搜索和替换当前行的第一个匹配项 |
:s/word1/word2/g | 搜索和替换当前行的全部匹配项 |
:%s/word1/word2/g | 全文搜索和替换 |
:nohl | 取消搜索后的高亮 |
严格说n和N应属于命令模式了,但为了总结方便放到这里了。
总之,vim的命令极其多,不过,并未一定要熟记每一个命令才能熟练掌握vim,其实每个人都只是用了vim的一小部分功能而已。