vim分为三种模式:命令模式,编辑模式,末行模式。
命令模式:对文档进复制,粘贴,替换,移动光标查找等等。
末行模式:文件的保存,推出,定位光标,查找替换,设置行标等等。
进入编辑模式命令及解释:
i:从光标所在位置前面开始插入文本,类似insert键。
I:从光标所在行的行首开始插入文本。
a:从光标所在位置后面开始插入文本。
A:从光标所在行的行尾开始插入文本。
s:删除光标所在字符并开始插入文本。
S:删除光标所在行并开始插入文本。
o:在光标所在行的下方新增一行并开始插入文本。
O:在光标所在行的上方新增一行并开始插入文本。
r:替换光标所在位置的字符。
R:替换光标所在位置,一直替换到按Esc为止。
u:恢复光标所在位置的单个字符操作。
U:恢复光标所在行的操作。
ctrl+r:重复上一个操作。
J:合并光标所在行与下一行。
进入末行模式命令及解释:
: 在命令模式的下方输入需要执行的命令。
/ 在命令模式的下方输入搜索的字符串,从光标位置开始向下搜索,按n重复前一个搜索动作,按N方向重复前一个搜索动作。
? 在命令模式的下方输入搜索的字符串,从光标位置开始向上搜索,按n重复前一个搜索动作,按N反向重复前一个搜索动作。
推出VIM编辑器命令及解释:
q:没有对文档做过任何修改,退出。
q!:有对文档做过修改,但墙纸不保存退出。
qw或x:对文档的修改进行保存推出,在命令后加!表示强制保存退出。
zz:若文档没有修改,则不保存退出;若文档已经修改,则保存后退出。
快捷命令:
x/X/nx:向后/前删除一个或者n个字符
dd/ndd:删除光标所在行或者向下删除n行
d1G/dgg:删除光标位置到第一行的所有数据
dG:删除光标位置到最后一行的所有数据
d0/d$:删除光标位置到该行行首/尾
cw/ncw:更改光标位置的一个字符或n个字符
yy/nyy:复制光标所在位置到第一行或向下n行
y1G/ygg:复制光标位置到第一行的所有行
yG:复制光标位置到最后一行的所有行
y0/y$:复制光标位置到该行行首或行尾
yw/nyw:复制光标位置一个字符或n个字符
p/P:粘贴到光标位置下/上一行
光标移动快捷键:
h/j/k/l:光标向左/下/上/右
nj:向下移动n行
ctrl+f/b/u/d:屏幕向下/上/移动半页/移动一页
n<space>:光标向后移动n个字符
n<Enter>:光标向下移动n行
H/M/L:光标移动到屏幕上/中/下
+/-:光标移动到非空字符的下/上一行
o/^:光标移动到行首
$:光标移动到行尾
gg:光标移动到第一行
G:光标移动到最后一行
nG:光标移动到第n行
VIM末行模式下常用操作:
n1,n2s/word1/word2/g:从n1行到n2行之间的word1替换成word2,如果没有,g则只替换第一个匹配。
1,$s/word1/word2/gc:从第一行到最后一行之间的word1替换为word2,c代表每次确认。
%s/^/word2/g:在整个文件每行行首插入word2
%s/$/word2/g:在整个文件每行行尾插入word2
%/var/char-&/g:在整个文件中匹配到var后替换为char-var,&代指匹配的结果,可能为正则匹配的多种结果,可能为正则匹配的多种结果。
其他末行模式常用的命令:
w/w!:保存文件/强制保存文件
w filename:保存为filename文件
n1,n2 w filename:从n1到n2行另存为filename文件
r filename :读取另外文件到正在编辑的文件
! command:暂时离开vi执行命令
r ! command:把命令的输出插入当当前
sh :转动shell,输入exit返回
e!:将文件还原
set nu/set nonu:设置行号/取消行号
set autoindent:设置自动对齐格式(取消set noautoindent)
set ruler:设置屏幕底部显示光标所在的行列位置
set ignorecase:忽略正则表达式中的大小写
no hl search :取消搜索到的关键字的高亮显示
VIM的其他操作
块操作:
命令模式下按V则进入操作;移动光标选定操作块;按y复制,按c键剪切,按p粘贴。
水平分隔窗口命令,同时水平排列打开文件file1.txt和file.txt[root@leoH ~]# vim -o file1.txt file.txt
垂直分隔窗口命令,同时垂直排列打开文件file1.txt和file.txt[root@leoH ~]# vim -m -o file1.txt file.txt
窗口移动快捷键:ctrl+w
问题:
如果文件编辑过程中vi非正常关闭,那么重新打开vi test.txt是,系统会提示发现交换文件.test.txt.swp,可能原因是:
1.有另一个程序也在编辑同一个文件
2.上次编辑此文件是崩溃
解决办法:1.这时可以按o只读打开,或R进行修复,或E直接编辑,或Q退出2.手动删除.test.txt.swp后,则不会再出现该提示。