初学者刚进入vi不要乱点键盘,vi的三种模式和各种命令很容易弄混。
vi编辑器是Unix系统最初的编辑器。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。
vi共分为三种模式:命令模式,编辑模式,末行模式
(1)命令模式
命令模式为vi的初始模式。在普通权限下键入“”$ vi 文件名 “”或 临时root用户下键入 “# vi 文件名”(例:root@XXX-virtualBox:/ect# vi vsftpd.conf),则初始进入vi的命令模式。 编辑模式下按esc进入命令模式。网上很多写在末行模式按esc可进入命令模式,我的电脑进入末行模式后几乎所有按键都是输入,输入esc显示“^[”而不会退回到命令模式。所以如果有情况和我相同进入末行模式不能转换模式的,不要乱按回车键(我回车换行后退出不了。。结果按截屏键退到桌面强制退出vi@@)。
命令模式中:
ZZ:退出vi
h或
j或下键:下移一行
k或上键:上移一行
l或右键:右移一个字符
pageDown(或ctrl+F):下翻一屏
pageUp(或ctrl+B):上翻一屏
G:移动到缓冲区的最后一行
num G:移动到缓冲区中第num行
gg:移动缓冲区的第一行
x:删除当前光标所在位置的字符
dd:删除当前光标所在行
dw:删除当前光标所在位置的单词
d$:删除当前光标所在位置至行尾的内容
J:删除当前光标所在行行尾的换行符(拼接行)
u:撤销前一编辑命令
a:在当前光标后追加数据
A:在当前光标所在行行尾追加数据
r char:用char替换当前光标所在位置的单个字符
R text:用text覆盖当前光标所在位置的数据,直到按下ESC键
很容易误按的一个命令:qq:左下角会出现“recording@”这个标识。这是vim的一个强大的功能。它可以录制一个宏,参考
http://www.netingcn.com/vim-recording-function.html
按q可停止宏录制
(2)编辑模式
在命令模式中按下【i,I,o,O,a,A,r,R】等字母之后进入编辑模式。按下上述的字母时,画面的左下方可能会出现【–INSERT–或–插入–】的字样,可以做文字数据输入。各个按键含义如下:
a:在光标后开始插入
A:在行尾开始插入
i:从光标所在位置前面开始插入
I:从光标所在列的第一个非空白字元面前开始插入
o:在光标所在列下新增一列并进入输入模式
O:在光标所在列上方新增一列并进入输入模式
ESC:返回命令模式
(3)末行模式
网上很多说在命令模式中输入【:】会进入末行模式,我的电脑:没有效果。需要在大写模式(按CapsLock键)再按q键最末行会出现:,注意这时不能再切换回其他模式(如果可以请留言我修改,谢谢)。可在:后输入命令
:q 如果有未修改缓冲区数据,退出。
:q! 取消所有对缓冲区数据的修改并退出【不保存直接退出】
:w filename 将文件保存到另一个文件中
:wq将缓冲区数据保存到文件中并退出
:sp上下分屏
:vsp左右分屏
ctrl+w+w切换屏
有些资料写命令模式中输入【/】进入末行模式,和:的命令不同,/后可输入查找内容或一些命令。如果/后输入错误的命令会自动回到命令模式