本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020
Linux 下最强大的文本编辑器当属Vi/Vim了,其命令之多,如果能灵活运用,在写程序或者编辑文本时,要比其他的文本编辑器更有效率。
Vi/Vim没有菜单,只有命令,共有三种工作模式: 分别是命令模式、插入模式和编辑模式,三者关系如下图
Vi常用命令
插入命令:
a 在光标后插入
A 在本行末附加文本
i 在光标前插入
I 在本行首插入文本
o 在光标下插入新行
O 在光标上插入新行
定位命令:
h,方向左键 左移一个字符
j ,方向下键 下移一个字符
k,方向上键 上移一个字符
l, 方向右键 右移一个字符
$ 移动到行尾
0 移到到行首
H 移动到屏幕上端
M 移动到屏幕中央
L 移动到屏幕下端
:set nu 显示行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
:$ 到最后一行,和G功能相同
nG 到第n行
:n 到第n行
ctrl+f 向前滚动一页
ctrl+b 向后滚动一页
删除命令:
x 删除光标所在字符
nx 删除光标所在处后n个字符
dd 删除光标所在行
ndd 删除光标所在行的后n行
dG 删除光标所在行到文件末尾的内容
d0 删除光标所在处到本行行首的所有内容
d$ 删除光标所在处到本行行尾的所有内容
D 删除光标所在处到本行行尾的所有内容,同d$
dw 删除一个单词
ndw 删除光标所在处的后n个单词
:nd 删除第n行
:n1,n2d 删除第n1行到n2行的所有内容
:n1,n2 mo $ 将n1行到n2行的内容移动到最后一行
复制和剪切
yy ,Y 复制当前行
nyy, nY 复制当前行的以下n行
dd 剪切当前行,其实就是删除
ndd 剪切当前行以下n行
:n1,n2 co n3 将n1-n2行的所有内容复制到第n3行
:n1,n2 co $ 将n1-n2行的所有内容得到到最后一行
粘贴命令
p 粘贴到当前行的下一行
P 粘贴到当前行的上一行
取消命令
u 取消上一步操作
搜索和替换
/string 搜索string所在位置,n从前往后找,N从后往前找,搜索时如果要忽略大小写,则加上:set ic
:%s/old/new/g 全文替换指定字符串
:s/old/new 替换当前行出现的第一个指定字符串
:s/old/ 替换当前行所有的指定字符串
:n1,n2 s/old/new/g 在n1-n2行中替换所指定的字符串
保存和退出
:wq 保存退出
:wq! 强制保存退出
:x 和:wq功能一样
ZZ 和:wq!功能一样
:q 退出
:q! 强制退出
注:
还有一个命令,就是“.” 命令,这个命令的作用是用来重复上一个命令的。