分类:
2009-11-24 18:26:51
一般模式:移动光标的方法
h (<)光标向左移动一个字符: 光标向左移动一个字符
j (V)光标向下移动一个字符: 光标向下移动一个字符
k ( ^)光标向上移动一个字符: 光标向上移动一个字符
l (>)光标向右移动一个字符: 光标向右移动一个字符
如果想要进行多次移动的话,例如向下移动30行,可以使用“30j”或“30(V下箭头)的组合键,即加上想要进行的行数(数字)
【ctrl】+【f 】 屏幕“向下”移动一页,相当于【page down】按键
【ctrl】+【b】 屏幕“向上”移动一页,相当于【page up】按键
【ctrl】+【d】 屏幕“向下”移动半页
【ctrl】+【u】 屏幕“向上”移动半页
其中[ctrl]+f,[ctrl]+b常用
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n
标会向右移动这一行的n个字符,20
0 数字“0”,移动到这一行的最前面字符处
(常用)
$ 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行
M 光标移动到这个屏幕的中央那一行
L 光标移动到这个屏幕的最下方那一行
G 移动到这个文件的最后一行(常用)
nG n为数字,移动到这个文件第n行。例如20G则
会移动到这个文件的第20行(配合:set nu使用)
gg 移动到这个文件的第一行,相当于1G
n
/word 从光标位置开始,向下寻找一个名为word的字符串。
如非编辑模式下键入/num,则查找num的字符串。
(常用)
? 从光标位置开始,向上寻找一个名为word的字符串
n n为键盘上的按键,表示重复前一个搜索的动作。如
通过/word查找某个字符串,n为继续向下搜索下个
名为word的字符串,同理,如果前一个命令式执行?
Word,则按下n为继续向上搜索下一个为word的字
符串
N N为键盘上的按键,表示反向进行前一个搜索操作,
与n相反。
:n1,n2s/word1/word2/g
n1与n2为数字。在第n1与n2行之间寻找word1字符串,并将该字符串替换为word2.
: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行,例如
20dd则是删除20行(常用)
d1G 删除光标所在位置到第一行的所有数据
dG 删除光标所在位置到最后一行的所有数据
d$ 删除光标所在位置到该行的最后一个字符
d0 d的后面是数字0,删除光标所在处到该行的最前面
一个字符
yy 复制光标所在的那一行(常用)
nyy n为数字。复制光标所在的向下n行,例如20yy
则是复制20行(常用)
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数
据
p,P p为将已复制的数据粘贴到光标的下一行,P则为贴在光标上
一行。举例来说,当前光标在第20行,且已经复制了10行数
据。则按下p后, 那10行数据会贴在原来的20行之后,即由
21行开始贴。但如果按下P, 那么原来的第20行会被变成30
行。 (常用)
J 将光标所在行与下一列的数据结合成同一行
c 重复删除多个数据,例如向下删除10行,10cj
u 复原前一个操作(常用)
【ctrl】+r 重做上一个操作(常用)
u与【ctrl】+r是很常用的命令。一个是复原,另一个则是重做一次。
. 这就是小数点。意思是重复前一个动作。如果想重复删除,
重复粘贴,小数点"."就可以。
进入编辑模式
i,I 插入;在当前光标所在处插入文字,已存在的文字会向后
退;其中,i为”从当前光标所在处插入“,I为“在当前所
在行的第一个非空格符处开始插入” (常用)
a,A a为“从当前光标所在的下一个字符处开始插入",A为"从光
标所在行的最后一个字符处开始插入" (常用)
o,O 英文字母o的大小写。o为“在当前光标所在的下一行处插
入新的一行”;O为“在当前光标所在处的上一行插入新的
一行” (常用)
r,R 替换:r为替换光标所在的那一个字符;R会一直替换光标
所在的文字,知道按下Esc键为止(常用)
使用上面这些按键时,在vi画面的左下角处会出现“--INSERT--"或”--REPLACE--"的字样。通过名称就知道是什么操作。
Esc 退出编辑模式,回到一般模式中(常用)
命令行命令模式
:w 将编辑的数据写入硬盘文件中(常用)
:w! 若文件属性为“只读”时,强制写入该文件。最终能不能写入,与文件权限有关。
:q 离开vi (常用)
:q! 若曾修改过文件,又不想存储,使用!为强
制离开不存储修改过的文件
:wq 存储后离开,若为:wq!则为强制存储后离
开(常用)
:e! 将文件还原到最原始的状态
ZZ 若文件没有更改,则不存储离开,若文件已
经更改,则存储后离开
:w [filename] 将编辑的数据存储成另一个文件
:r [filename] 在编辑的数据中,读入另一个文件
的 数据。即将“filename”这个文
件内容加到光标所在行的后面
:n1,n2w[filename] 将n1到n2的内容存储成filename文
件
:! command 暂时离开vi到命令行模式下执行
command的显示结果。
例如“:!ls /home",即可在vi中查看
ls输出的/home中的文件信息
:set nu 显示行号,设置之后,会在每一行
的前缀显示该行的行号
:set nonu 与set nu相反,为取消行号