简介
基本上vi共分为3种模式,分别为一般模式、编辑模式与命令行模式。一般模式与编辑模式及命令行模式可相互切换,但是编辑模式与命令行模式不可切换
1.一般模式
一般模式中,可以使用上下左右按键来移动光标,可以删除字符或删除整行,也可以复制、粘贴文件的数据
2.编辑模式
在一般模式中,按下“i,I,o,O,a,A,r,R”等任何一个字母才会进入编辑模式。如果要退出编辑模式,按下【ESC】则退出编辑模式
3.命令行模式
在一般模式中,按下“: / ?”三个中的任何一个按钮,就可以将光标移动到最下面那一行。在这个模式当中,可以提供你查找数据的操作,而读取、保存、大量替换字符、离开vi、显示行号等的操作可以在此模式下完成
按键说明
1、移动光标的方法
h或者左箭头键 | 光标向左移动一个字符 |
---|
j或者向下箭头 | 光标向下移动一个字符 |
k或者向上箭头 | 光标向上移动一个字符 |
l或者向右箭头 | 光标向右移动一个字符 |
注:可以通过数字加方向键进行多字符移动,例如:30h向左移动30个字符
【ctrl】+ f | 屏幕向下移动一页,相当于【Page Down】按键 |
---|
【ctrl】+ b | 屏幕向上移动一页,相当于【Page Up】按键 |
【ctrl】+ d | 屏幕向下移动半页 |
【ctrl】+ u | 屏幕向上移动一页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n | 光标向右移动n个字符 |
0或者【home】 | 光标移动到本行最前位置 |
$或者【end】 | 光标移动到本行最后位置 |
H | 光标移动到屏幕最上一行头部 |
M | 光标移动到屏幕中间一行头部 |
L | 光标移动到屏幕最后一行头部 |
G | 光标移动到文件最后一行 |
nG | 光标移动到文件的第n行 |
gg | 光标移动到文件的第一行 |
n【enter】 | 光标向下移动n行 |
2、查找与替换
/word | 向下查找word的字符串 |
---|
?word | 向上查找word的字符串 |
n | 重复前一个动作,如果是使用/word,即为向下继续查找word的字符串,如果使用?word,即为向上继续查找word的字符串 |
N | 反向重复前一个动作,如果是使用/word,即为反向向上查找word的字符串,如果使用?word,即为反向向下查找word的字符串 |
:n1,n2s/word1/word2/g | 将从n1行到n2行中的word1替换为word2 |
:1,$s/word1/word2/g | 将从1行到文档末尾行中的word1替换为word2 |
:1,$s/word1/word2/gc | 将从1行到文档末尾行中的word1替换为word2,并让用户确认 |
3、删除、复制与粘贴
x与X | 在一行字中,x表示删除光标所在的一个字符,后面字符前移【del】,X表示删除光标前的一个字符,后面字符前移【BackSpace】,可以和数字连着使用,表示批量操作 |
---|
dd | 删除光标所在的行,可以和数字连着使用,表示删除光标所在的向下n行 |
d1G,dG,d$,d0 | d1G表示删除光标所在行到第一行的数据,dG表示删除光标所在行到最后一行的数据,d$删除光标到行末的数据,d0表示删除光标到行首的数据 |
yy | 复制光标所在的行,可以和数字连着使用,表示复制光标所在的向下n行 |
y1G与yG与y$$与y0 | y1G表示复制光标所在行到第一行的数据,yG表示复制光标所在行到最后一行的数据,y$复制光标到行末的数据,y0表示复制光标到行首的数据 |
p与P | p为将复制的数据在光标的下一行复制,P为将复制的数据在光标的上一行复制 |
u | 复原上一个操作,撤销 |
【ctrl】 + r | 重做上一个动作,反向撤销 |
. | 重复前一个动作 |
4、命令行模式
:w | 将编辑的数据写入硬盘文件中 |
---|
:w! | 若文件属性为“只读”时,强制将编辑的数据写入硬盘文件中 |
:q | 离开vim |
:q! | 修改过该文件,又不想保存修改过的内容,强制离开vim |
:wq! | :wq保存后离开,:wq!强制保存后离开 |
ZZ | 文件没有修改,则不保存离开,文件有修改,则保存后离开 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
:! command | 暂时离开vim,执行command命令 |