vi和vim的常用命令
一般指令模式可用的按钮说明
移动光标的方法
ctrl + f
: 屏幕【向下】移动一页,相当于Page Down
ctrl + b
: 屏幕【向下】移动一页,相当于Page Up
0 或者 Home键
: 移动到当前行最前面的字符处
$ 或者 End键
:移动到当前行最后面的字符处
gg
:移动到这个文件的第一行
G
:移动到这个文件的最后一行
nG
:n为数字。移动到这个文件的第n行。例如20G则会移动到这个文件的第20列
n<Enter>
:n为数字。光标向下移动n行
搜寻与取代
/xxx
:向光标之下寻找一个名称为xxx的字符串。例如要在文件内搜寻coderzpw这个字符串,就输入/coderzpw即可!
?xxx
:向光标之上寻找一个名称为xxx的字符串。
: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。且在取代前显示提示字符给用户确认(confirm)是否需要取代!
删除、复制和粘贴
x,X
:在一列字当中,x为向后删除一个字符(相当于【del】键),X为向前删除一个字符(相当于【backspace】亦即是退格键)
nx
:n为数字,连续向后删除n个字符
dd
:删除游标所在的一整行
ndd
:n为数字,删除游标所在的向下n行
yy
:复制游标所在的一整行
nyy
:n为数字,复制游标所在的向下n行
p,P
:p为将已复制的数据在光标下一列标上,P则为贴在游标上一列。
u
:还原前一个动作
ctrl + r
:重做上一个动作
其他指令
:set nu
:在vi中显示行号
:e!
:在vi底下做了很多编辑动作后,想要还原成原来的文件内容
一般模式切换 到 编辑模式的相关按钮
进入插入或取代的编辑模式
i,I
:进入插入模式:i为【从目前光标处插入】,I为【在目前所行的第一个非空格字符处开始插入】
a,A
:进入插入模式:a为【从目前光标所在的下一个字符处开始插入】,A为【从光标所在行的最后一个字符处开始插入】
o,O
:进入插入模式:o为【从目前光标所在的下一行处插入新的一行】,O为【在目前光标所在的上一行处插入新的一行】
r,R
:进入插入模式:r只会取代光标所在的那一个字符一次,R会一直取代光标所在的文字,直到按下ESC为止
ESC
:退出编辑模式,回到一般指令模式中
一般模式切换 到 指令模式的相关按钮
指令模式的存储、离开等指令
:w
:将编辑的数据写入硬盘文件中
:w!
:若文件属性为只读时,强制写入该文件。不过到底能不能写入,还是跟你对该文件的文件权限有关
:q
:离开vi
:q!
:若曾修改过文件,又不想储存,使用!为强制离开不存储文件
:wq
:储存后离开,若为:wq!则为强制储存后离开
ZZ
:这是大写的Z,即你输入shift+zz。若文件没有更动,则不储存离开,若文件已经被更动过,则存储后离开
:w filename
:将编辑的数据存储成另一个文件(类似于另存为)