(一般模式可用的按钮说明,光标移动、复制粘贴、查找替换等)
移动光标的方法
h或向左箭头键 光标向左移动一个字符
j或向下箭头键 光标向下移动一个字符
k或向上箭头键 光标向上移动一个字符
l或向右箭头键 光标向右移动一个字符
[Ctrl] + [f] 屏幕向下移动一页,相当于[Page Down]按键
[Ctrl] + [b] 屏幕向上移动一页,相当于[PageUp]
[Ctrl] + [d] 屏幕向下移动半页
[Ctrl] + [u] 屏幕向上移动半页
- 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n<space> n表示“数字”,例如20。按下数字再按空格键,光标会向右移动这一行的n个
字符。例如20<space>,则光标会向后移动20个字符距离。
0或功能键[home] 这是数字键“0”:移动到这一行的最前面字符处
$或功能键[End] 移动到这一行的最后面字符处
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行
nG n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20行。
N[Enter] n为数字。光标向下移动n行
gg 移动到这个文件的第一行,相当于1G
查找与替换
/word 向下寻找一个名称为word的字符串。
?word 向上寻找一个字符串名称为word的字符串
n 这个n是英文按键。代表重复前一个查找的操作。举例来说,如果刚才我们执行/word
去向下查找word这个字符串,则按下n后,会向下继续查找word的字符串。
N 这个N是英文按键。与n刚好相反,为“反向”进行前一个查找操作。例如输入/word后
,按下N则表示向上查找word
:n1,n2s/word1/word2/g n1与n2位数字。在第n1与n2之间寻找word1这个字符串,并将
该字符串替换为word2。举例来说,在100到200行之间查找
vbird并替换为VBIRD则用”:100,200/vbird/VBIRD/g”
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符替换为
word2
:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为
word2。且在替换前显示字符给用户确认(confirm)是否要替换
删除、复制与粘贴
x,X 在一行字当中,x为向后删除一个字符(相当于[Del]按键),X为向前删除一个字符(相当于
[Backspace])
nx n为数字,连续向后删除n个字符。举例说明,我想连续删除20个字符,”20x”
dd 删除光标所在的那一整行
ndd n为数字。删除光标所在的向下n行
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除光标所在到该行的最后一个字符
d0 0是数字0,删除从光标所在处到该行的最前面一个字符
yy 复制光标所在的那一行
nyy n为数字。复制光标所在的向下n行
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行。举例来说,我目前
光标在第20行,切已经复制了10行数据。则按下p后,那10行数据会粘贴在原本的20
行之后,也即21行开始粘贴。但如果按下P,那么原本的第20行会被变成30行。
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除10行,[10cj]
u 复原前一个操作
[Ctrl] + r 重做上一个操作
. 这是小数点。意思是重复前一个操作的意思。如果你想重复删除、重复粘贴等操作,
按下”.” 就好了
进入插入或替换的编辑模式
i,I 进入插入模式(Insert mode)
i为从目前光标所在插入,I为在目前所在行的第一个空格符处开始插入
a,A 进入插入模式(Inset mode)
a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开
始插入
o,O 进入插入模式(Inset mode)
o为在目前光标所在的下一行处插入新的一行;O为目前光标所在处的上一行插入新
的一行
r,R 进入替换模式(Replace mode)
r 只会替换光标所在的那一个字符一次;R 会一直替换光标所在的文字,直到按下
[Esc]键为止
命令行的保存、离开等命令
:w 将编辑的数据写入硬盘文件中
:w! 若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入,还是根该文件的
文件权限有关
:q 离开vi
:q! 若曾经修改过文件,又不想储存,使用“!”为强制离开不保存文件
:wq 保存后离开,若为“:wq!”则为强制保存后离开
ZZ 这是大写的Z。若文件没有更懂,则不保存离开,若文件已经被更动过,则保存后离
开
:w[filename] 将编辑的数据保存成为另一个文件(类似于另存文件)
:r[filename] 在编辑的书就中,读入另一个文件的数据,即将”filename”这个文件内容加到光标所
在行后面
:n1,n2 w [filename] 将n1到n2的内容保存成 filename这个文件
:!command 暂时离开vi 到命令行模式下执行command的显示结果。例如“:! ls /home” 即
可在vi当中查看/home 下面以ls输出的文件信息
:set nu 显示行号,设置之后,会在每一行的前缀显示该行的号
:set nonu 与set nu 相反,为取消行号