VIM模式
一般指令模式(普通模式)
一般vi进来就是一个普通模式,可以使用hjkl来移动鼠标操作;
编辑模式(插入模式)
切入编辑模式:i,l,o,O,a,A,r,R;
退出编辑模式:esc
指令列命令模式(命令行模式)
在普通模式下输入:":,/,?"都可以切入命令模式
选择模式
在普通模式下输入"V,v";可以进入选择模式
普通模式
移动光标命令(普通模式下)
常见:h:左,j:下;k:上;l:右;也可以10j,20k这种方式来处理;光标移动num行;
b:back,向后移动一个单词;
w:forward:向前移动一个单词;
gg:移动光标到第一行;
G:移动光标到最后一行;
nG:移动光标到n行;
$:移动光标到行尾;
0:移动光标到行首;
H:移动光标到当前展示页面最上方的第一个字;
M:移动光标到当前展示页面中间第一个字;
L:移动光标到当前展示页面的最后一个字;
ctrl+f:向下移动一个页面,
ctrl+b:向上移动一个页面;
ctrl+d:向下移动一个半页;
ctrl+u:向上移动一个半页;
+:光标移动到非空白的下一列;
-:光标移动到非空白的上一列;
n<space>:n数字,光标向右移动几个单词;
复制、剪切、黏贴,删除
删除
x,X:x表示向后删除一个字符,X表示向前删除一个字符;
nx:n数字,表示向后删除几个字符;
dd:表示删除一整列;
ndd:删除n列;
d1G:删除光标所在到第一列的所有资料;
dG:删除光标到最后一列的所有资料;
d$:删除光标所在处到该行的最后一个字符;
d0:删除光标所在处到改行的第一个字符
复制
yy:复制光标所在行;
nyy:复制n行,向下n行;
y1G:复制光标所在到第一行的所有资料;
yG:复制光标所在到最后一行的所有资料;
y0:复制光标所在字符到改行的行首资料;
y$:复制光标所在字符到该行行尾所有资料;
黏贴
p,P:将已经复制的内容,黏贴到下一行;
J:将光标所在行与下一行结合成同一行;
c:重复删除多个内容,10cj,向下删除10行;
撤回
u:恢复前一个动作;
ctrl+r:重做上一个动作;
指令命令模式
:h:调出vim命令帮助;命令文档;
:w:存储文档;
:wq:保存文档并退出;
搜索与取代
/word:光标向下寻找word字符串;
?word:光标向上寻找word字符串;
n:搜索相关字符,按住enter,之后可以使用n来继续搜索下一个;
N:反方向继续搜索下一个;
:n1,n2s/word1/word2/g:在n1和n2行之间将word1,替换成word2
:1,$s/word1/word2/g:表示从第一行到最后一行将word1替换成word2;
行号
:set num:显示行号;
:set nonu:取消显示;
保存/退出
:w:保存;
:w!:强制保存;
:q:退出
:q!:强制退出;
:w [filename]:另存为另一个文档;
:n1,n2 w [filename]:将n1到n2内容保存filename文件;
插入模式
i,I:插入模式,i光标所在位置,I目前第一个非空白字符;
a,A:a:光标下一个位置,A,光标所在行最后一个字符开始插入;
o,O:上一行,下一行插入;
r,R:取代光标所在的字符;