1.vim的三种模式
命令行模式:默认模式,所有的输入被解释成vi命令,可执行复制、粘贴、移动、删除等命令,也可以进行光标移动、搜索字符串和退出vi等操作
编辑模式:在这一模式下,所有的输入被解释为文件的正文
扩展模式:可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器
2.三种模式的转换(编辑模式和扩展模式不能直接转换)
命令行模式→编辑模式:a、i、o、A、I、O
i:在当前光标所在字符前面,转为输入模式
I:在当前光标所在行的行首,转换为输入模式
a:在当前光标所在字符后面,转为输入模式
A:在光标所在行的行尾,转换为输入模式
o:在当前光标所在行的下方,新建一行并转为输入模式
O:在当前光标所在行的上方,新建一行并转为输入模式
编辑模式→命令行模式:ESC
命令行模式→扩展模式:冒号:
扩展模式→命令行模式:ESC
命令行模式 | dd | dd删除光标所在行 |
ndd | ndd删除包括光标所在行向下的n行 | |
yy | 复制光标所在行 | |
nyy | 复制包括光标所在行向下的n行 | |
p(小写) | 将已复制的内容粘贴在光标所在行的下一行 | |
P(大写) | 将已复制的内容粘贴在光标所在行的上一行 | |
np | 将已复制的内容粘贴在光标所在行的下一行,粘贴n次 | |
nP | 将已复制的内容粘贴在光标所在行的上一行,粘贴n次 | |
u | 撤销上一步操作 | |
ctrl+r | 恢复上一步操作 | |
n↑↓← → | 向上、下、左、右移动,前面加n的话表示移动n个字符或行 | |
数字0,$ | 移动到当前行首、行尾 | |
nG | 移动到文件的第n行 | |
G,gg(1G) | 移动到文件的最后一行、第一行 | |
:set nu | 显示行号 | |
/word | 向下查找 | |
?word | 向上查找 | |
:n1,n2s/word1/word2/g | 将n1行和n2行之间的word1替换成word2,g表示替换所有符合条件,否则只替换第一个 |