1. 移动光标的方法
h或左箭头 | 光标向左移动一个字符 |
j或下箭头 | 光标向下移动一个字符 |
k或上箭头 | 光标向上移动一个字符 |
l或右箭头 | 光标向右移动一个字符 |
如果想要向下移动30行,可以使用“30j”的组合按键,即加上想要进行的数字后,即可操作 | |
【Ctrl】+【f】 | 屏幕向下移动一页,相当于【PageDown】 |
【Ctrl】+【b】 | 屏幕向上移动一页,相当于【PageUp】 |
【Ctrl】+【d】 | 屏幕向下移动半页 |
【Ctrl】+【u】 | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n<space> | “n”表示一个数字。按下数字后再按下空格键,光标会向右移动这一行的n个字符。eg. 20<space>,则光标会向后移动20个字符距离 |
0或【home】 | 移动到这一行的最前面字符处 |
$或【End】 | 移动到这一行的最后面字符处 |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个文件的最后一行 |
nG | n为数字,移动到这个文件的第n行。eg. 20G则会移动到这个文件的第20行 |
gg | 移动到这个文件的第一行,相当于1G |
N【Enter】 | n为数字,光标向下移动n行 |
查找与替换 | |
/word | 向下寻找一个名称为word的字符串 |
?word | 向上寻找一个名称为word的字符串 |
n | 重复前一个查找的操作。例如,如果刚才执行/word去向下查找word这个字符串,按下n后,会向下继续查找下一个名称为word的字符串 |
N | 与n相反,表示反向进行前一个查找操作。例如,输入/word后,按下N则表示向上查找名称为word的字符串 |
使用/word配合n以及N是非常有帮助的,可以重复找到一些关键字 | |
:n1,n2s/word1/word2/g | n1和n2为数字,在n1与n2之间寻找word1,并将word1替换为word2。eg. 在100-200行间查找word1,并替换为word2,“:100,200s/word1/word2/g” |
:1,$s/word1/word2/g | 从第一行到最后一行查找word1字符串,并将该字符串替换为word2 |
:1,$s/word1/word2/gc | 从第一行到最后一行查找word1字符串,并将该字符串替换为word2。且在替换前显示提示字符给用户确认是否需要替换 |
删除、复制与粘贴 | |
x,X | 在一行字当中,x为向后删除一个字符,相当于【Del】;X为向前删除一个字符,相当于【Backspace】 |
nx | n为数字,连续向后删除n个字符 |
dd | 删除光标所在的那个一整行 |
ndd | n为数字,删除光标所在的向下n行,eg. 20dd则是删除20行 |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除从光标所在到最后一行的所有数据 |
d$ | 删除从光标所在到该行的最后一个字符 |
d0 | 删除从光标所在到该行的最前面一个字符 |
yy | 复制光标所在的那一行 |
nyy | n为数字,复制光标所在的向下n行,eg. 20yy则是复制20行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在处到该行行首的所有数据 |
y$ | 复制光标所在处到该行行尾的所有数据 |
p,P | p为将已复制的数据在光标下一行粘贴,P为粘贴在光标上一行。 |
J | 将光标所在行与下一行的数据结合成同一行 |
u | 复原前一个操作,即撤销 |
【Ctrl】+r | 重做上一个操作 |
2. 一般模式切换到命令行模式的可用的按钮说明
:w | 将编辑的数据写入硬盘文件中 |
:w! | 若文件属性为“只读”时,强制写入该文件。不过到底能不能写入,还是跟你对该文件的文件权限有关 |
:q | 离开vi |
:q! | 若曾修改过文件,又不想存储,使用“!”为不保存文件强制离开 |
:wq | 保存后离开,若为“:wq!”则为强制保存后离开 |
ZZ | 若文件没有更动,则不保存离开;若文件已被更动过,则保存后离开 |
:w[filename] | 将编辑的数据保存成另一个文件 |
:r[filename] | 在编辑的数据中,读入另一个文件的数据,即将“filename”这个文件内容加到光标所在行后面 |
:n1,n2 w[filename] | 将n1到n2的内容保存成filename这个文件 |