移动光标
h 或向左方向键(←) | 游标向左移动一个字元 |
j 或向下方向键(↓) | 游标向下移动一个字元 |
k 或向上方向键(↑) | 游标向上移动一个字元 |
l 或向右方向键(→) | 游标向右移动一个字元 |
Ctrl + f/d | 向下移动一页(相当于Page down)/半页 |
Ctrl + b/u | 向上移动一页(相当于Page up)/半页 |
数字0 或者功能键【Home】 | 移动到这一列的最前面字元处 |
$ 或者功能键【End】 | 移动到这一列的最后面字元处 |
G /nG | 移动到这个档案的最后一列/第n列 |
gg | 移动到第一列 |
n + Enter | 游标向下移动n列 |
搜寻与取代
/word | 从光标位置向下搜寻word |
?word | 从光标位置向上搜寻word |
n | 要是执行/word后按n为向下继续寻找,要是执行?word则为向上继续寻找 |
:n1,n2s/word1/word2/g | 在n1和n2行之间将word1换成word2 |
:n1,n2s/word1/word2/gc | 在n1和n2行之间将word1换成word2,每次替换都要进行确认 |
:n1,$s/word1/word2/gc | 在n1和最后一行之间将word1换成word2,每次替换都要进行确认 |
删除、复制、粘贴
x, X | 在一列中,x为向后删除一个字元(相当于Delete),X为向前删除一个字元(相当于Backspace) |
dd/ndd | 删除光标所在整列/n为数字,删除光标所在的向下n列 |
yy/nyy | 复制光标所在整列/n为数字,复制光标所在的向下n列 |
y1G/yG/y0/y$ | 复制光标所在列到第一列的所有资料/最后一列/光标所在字元到该列行首/光标所在字元到该列行尾 |
p, P | p为将已复制的资料在游标下列粘贴上, P在上列粘贴 |
J | 合并光标所在列和下一列为一列 |
u | 复原前一个动作 |
Ctrl + r | 重做上一个动作 |
.(一个点) | 重复前一个动作 |
进入、插入或者取代的编辑模式
i, I | 插入模式,i为从目前游标所在处插入,I为从目前所在列一个非空字元处插入 |
a,A | 插入模式,a 为从游标所在下一个字元处插入,A 为从所在列最后一个字元插入 |
o,O | 插入模式,o 为从游标所在下一列插入新的列,O 为从所在列上一列插入新的列 |
r,R | 取代模式,r 为取代游标所在那个元一次,R会取代游标所在的文字,直到按下ESC为止 |
一般指令模式切换到切换到指令模式的可用按钮说明
:w [filename] | 将编辑的资料存储成为一个档案 |
:r [filename] | 在编辑资料中,读入另一个档案的资料,即将filename档案的内容加到游标后面 |
:n1, n2 w [filename] | 将n1到n2的内容存储为filename的档案 |
:!command | 暂时离开vi到指令模式下执行command的显示结果,如【:! ls /home】即可在vi中查看/home底下以ls输出的档案信息 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |