vim分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode),底线命令(Last line mode)
命令模式
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
常用命令:
i
切换到输入模式,以输入字符x
删除当前光标所在处的字符:
切换到底线命令模式,以在最底一行输入命令
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令
输入模式
常用:
Esc
退出输入模式,切换到命令模式Insert
切换光标为输入/替换模式,光标变成竖线/下划线
底线命令模式
基本命令:
- q 退出程序
- w 保存文件
vim按键
移动光标
要进行多次移动,例如向下移动30行,可使用30↓
的组合按键
[Ctrl]+[f]
下一页[Ctrl]+[b]
上一页[Ctrl]+[d]
向下半页[Ctrl]+[u]
向上半页0
移动到该行最前面字符处$
移动到该行最后字符处G
移动到档案最后一行nG
一赌东道档案第n行gg
移动到档案第一行
搜索替换
/word
向光标之下寻找名称为word
的字符串?word
向光标之上寻找名称为word
的字符串n
重复前一个搜寻的动作N
反向进行前一个搜寻动作:n1,n2s/word1/word2/g
在n1
与n2
行之间寻找word1
字符串,并用word2
取代:1,$s/word1/word2/g
或:%s/word1/word2/g
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2:1,$s/word1/word2/gc
或:%s/word1/word2/gc
从第一行到最后一行寻找word1
字符串,并将该字符串取代为word2
,并显示提示字符确认
删除、复制、粘贴
x,X
x
相当于del
,X
相当于Backspace
dd
删除光标所在行ndd
删除光标所在向下n行d1G
删除光标所在到第一行所有数据dG
删除光标所在到最后一行所有数据yy
复制光标所在行nyy
复制光标所在的向下n行p,P
p
为将已复制的数据在光标下一行粘贴,P为粘贴在上一行u
撤销[Ctrl]+r
重做.
重复前一动作
一般模式切换到编辑模式
i,I
i
为『从目前光标所在处输入』,I
为『在目前所在行的第一个非空格符处开始输入』a,A
a
为『从目前光标所在的下一个字符处开始输入』,A
为『从光标所在行的最后一个字符处开始输入』o,O
o
为『在目前光标所在的下一行处输入新的一行』, O 为在目前光标所在处的上一行输入新的一行r,R
r
会取代光标所在字符一次,R
会一直取代光标所在的文字,直到按下[Esc]
一般模式切换到命令模式
:w!
若文档为只读属性,强制写入该文档,不过仍与权限有关:q!
离开而不存储文档wq!
强制存储后离开ZZ
若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开:w [filename]
将编辑的数据另存为filename
:r [filename]
将filename
这个档案内容加到光标所在行后面n1,n2 w [filename]
将n1到n2的内容另存为filename
:! command
暂时离开vi到指令模式下执行command
的显示结果,如[:! ls/home]
即可在vi中查看/home
下以ls输出的文档信息:set nu
显示行号,在每一行的前缀显示该行行号:set nonu
取消行号