您的位置:首页 > 其它

对vim文本编辑器的总结

2015-11-20 12:02 169 查看
Vim是Unix及类Unix系统文本编辑器,一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。
vim的设计理念是组合;
vim有5种模式:一般模式,命令模式,编辑模式,替换模式,视图模式.
通过r和R进入替换模式,r只能替换一次,R可以对选定的区域一直进行替换。
通过v和V进入视图模式.视图模式用来选定区域模式。

撤销
:e! //恢复文档原始状态
u //退回前一个动作,同‘撤销’。
ctrl+r //重复前一个动作。

复制/粘贴/删除
yy //复制当前行。
nyy //复制从当前行开始的n行。
EG: 5yy //复制从当前行开始的5行。
p //粘贴到当前行的下面一行。
P //粘贴到当前行的上面一行。
D //从当前光标开始删除到行尾。
dnG //删除第n行到当前行的数据。
EG: d1G //删除第1行到当前行的数据。
dG //删除光标所在处到文件末尾
dd //删除当前行
ndd //从当前行开始向后删除n行。
d^ //删除从光标到文件开头。
d$ //删除从光标到文件末尾。
x //向后删除一个字符。(其实是删除光标所在区域的字符)
nx //向后删除n个字符。(其实是从光标所在区域开始删除n个字符)
X //向前删除一个字符。(其实是删除光标所在区域前面的个字符)
nX //向前删除一个字符。(其实是删除光标所在区域前面的n个字符)

查找
/str //从光标位置向下搜索str
?str //从光标位置向上搜索str
n //查找下一个str
N(或shift+n) //查找上一个str

替换
:%s/123/abc/g //把123全部替换成abc.
:%s/123/abc/gc //把123全部替换成abc,但是加入/c之后,需要操作者一个一个进行确认.
:num1,num2 s/word1/word2/g //用word2替换从第num1行到第num2行的word2.
注:可以用@和#的效果,与用/是一样的。
EG:10,15 s/word1/word2/g //用word2替换从第10行到第15行的word2.
1,$ s/word1/word2/g //用word2替换从第1行到最后一行的word2.
:10,15 s/^/#/g //把第10到15行开头替换为//。
:10,15 s/^#//g //把第10到15行开头//替换为空。
注:10,15 s/^/#/gc //在这个命令后面加个/c表示询问的意思。通过输入y/n等去确认。

块操作:
v //光标经过的字符被选中。
V //光标经过的行被选中。
ctrl+v //矩阵方式选中。
y //复制选中的数据。
d //删除选中的数据。

多文件编辑:
vim file1 file2 //同时编辑file1和file2两个文件。
:files //列出当前打开的文件列表。
:n //编辑下一个文件。
:N //编辑上一个文件。

多窗口操作:
:sp filename2 //使用vim打开filename1之后,输入:sp filename2,在新窗口打开filename2.
crtl+w 快速按j //窗口向下切换。“进入filename2的窗口。”
crtl+w 快速按k //窗口向上切换。“进入filename1的窗口。”

插入:
:r filename3 //把文件filename3的内容插入光标处,r可以理解为read。
i //在光标前插入。
I //在行首插入。
a //在光标后插入。
A //在行尾插入。
o //在下一行插入。
O //在上一行插入。
r //输入替换光标位置的字符。
R //进入替换模式,可以对选定区域进行一直替换。
― //大小写切换。
ESC //退出编辑模式,进入一般模式。

保存:
:w //保存。
:w //强制保存。
:w filename1 // 把当前文件写入filename1.w理解为write或另存为一个文件filename1.
:n1,n2 w filename2 //把当前文件n1到n2行写入filename1.w理解为write或另存为一个文件filename1.

退出:
:q //退出。
:q! //强制退出。
:wq! //强制保存并退出。
:x //保存并退出。

光标移动:
k j h l //使光标上下左右移动
0 //使光标移动到行首。
$ //使光标移动到行尾。
gg //使光标移动到文档首行。
G //使光标移动到文档末行。
nG //移动到文档第n行。或使用:n之后按ENTER.
n之后按space //向后移动n个字符.
向上翻页 //ctrl+b 或 pageup
向下翻页 //ctrl+f 或 pagedown.

其他操作:

:set nu //添加行号
:set nonu //取消行号

:set ic //设置忽略大小写
:set noic //取消忽略大小写设置。

:!command //在不退出vim的情况下,使用命令。
EG: :r !ls -al //在不退出vim的情况下,使用命令ls -al,并把结果插入光标处。

:ab aaa bbbcccddd //这个命令用于在需要频繁输入同一个长字符串时,只要输入前几个字符,系统就会自动补全后面字符。ab可以理解为a与b两个字符串连在一起。
:unab aaa //取消对aaa执行ab的定义.

:map 快捷键 触发命令
:map T :q! //以T代替:q!
注:输入后直接切换到其他模式即可。
:unmap T //取消T的快捷键作用。

本文出自 “sunwangbackup” 博客,请务必保留此出处http://sunwangbackup.blog.51cto.com/10866322/1714991
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: