1. vi和vim的关系:
vim可以理解是vi的升级版,支持shell script编程;
vi存在原因:所有Unix Like系统均内建vi编辑器,同时个别工具会主动呼叫vi,如crontab.
2. 关于vi的三种模式:
一般模式
编辑模式
命令模式
3. vi的一般模式命令:
1)光标移动:
单个字符:h(左)、l(右)、k(上)、j(下);
行头:^/0/Home,行尾:$/End;
多行:nk、nj。如向上移动10行:10k;
翻页:向上一页,ctrl + b;向下一页,ctrl + f;向上半页,ctrl + u;向下半页,ctrl + d;
任意行:nG;
文件头:gg/1G,文件未:G;
屏幕头:H,屏幕尾:L,中间:M
2)查找替换:
向上查找:?word
向下查找:/word
上一处:n,下一处:N (注意:当向上查找时,n与N作用扭转)
替换::n1,n2s/word1/word2/g[c],其中n1为开始行,n2为结束行,c为替换前是否需要确认。 如从第一行到最后一行寻找word1字符串,并将该字符串叏代为word2,且在替换前显示提示字符给用户确认,命令为:1,$s/word1/word2/gc.
3)删除:
删除字符:
向前,X. 一次删除多个,nX
向后,x. 一次删除多个,nx
行头到当前位置,d0
行尾到当前位置,dG
删除行:
向下删除n行,ndd
删除当前行,dd
4)复制与粘贴:
复制:
多行:nyy
单行部分字符:行头到当前光标,y0;行尾到当前光标,y$
粘贴:
在光标下一行粘贴,p
在光标上一行粘贴,P
注意,当复制内容为单行部分字符时,p为当前光标后边粘贴,P为光标前边复制
5)合并:
当前行和下一行合并:J
6)撤销与重做:
撤销:u
重做:ctrl + r
4. vi的插入模式:
1)插入:
当前行:
光标前,i;光标后,a
行首,I;行尾,A
换行:
上一行,O;下一行,o
2)替换:
单个替换,r
多个替换,R (知道ESC结束)
5. vi的命令模式:
保存: :w
退出: :q
强制退出: !
文件有变动则保存并退出,否则不退出:ZZ
另存为: :n1,n2 w filename。 其中,n1、n2分别为开始、结束行数,filename为另存为文件。
6. vim的swap文件处理:
只读,O
恢复,R
编辑,E
退出,Q
中止,A
注意,最终swap文件需要手动删除。
7. vim的块选择:
长方形,ctrl + v
行,V
字符,v
复制,y
删除,d
粘贴,p
8. vim的多文档:
同时编辑多个文件:vim t1 t2
列举文件列表::files
文件切换:切换到下一个文件,:n,切换到上一个文件,:N
注意,切换时,可能会提示加! (那就执行 :n!就好)
9. vim的多窗口:
操作步骤:
vim test
:sp [file] (如果填写,则为新窗口打开新文件,否则为当前文件)
ctrl + w + j(切换到下一个窗口),ctrl + w +k(切换到上一个窗口)
ctrl + w + q,保存并退出当前窗口
10. vim的设置:
显示/取消行号: :set nu/:set nonu (只有当前文件当前编辑被设置,下次打开还是为初始设置)
永久设置:vim ~/.vimrc
vim系统操作记录:~/.viminfo
本文出自 “心如止水,浴火重生” 博客,请务必保留此出处http://itisforyou.blog.51cto.com/9778869/1608577
原文地址:http://itisforyou.blog.51cto.com/9778869/1608577