i
进入插入模式,在光标所在字符前面插入
a
进入插入模式,在光标所在字符后面插入
<Esc>
回到普通模式
:set showmode
显示当前所在的模式
移动光标 h左 l右 j下 k上
x
删除字符
dd
删除一行
J
删除两行之间的换行符
u
撤销上一个编辑动作
CTRL-R
重做上一个编辑动作
U
行撤销,撤销当前行上的操作
o
在光标下方建立新的空行,并切换到插入模式
O
在光标上方建立新的空行,并切换到插入模式
指定计数,计数要放在命令前,例如: 如果想向上移动9行可以输入9k
3x
删除3个字符
ZZ
保存并退出
:q!
放弃修改并退出
:help
帮助
CTRL-]
标签跳转命令
CTRL-T
或CTRL-O
回到前一个跳转点
简单移动
w
移动到下一个单词的词首
b
移动到前一个单词的词首
e
移动到下一个单词的词末
ge
移动到前一个单词的词末
$
,<End>
移动到当前行的行尾
^
移动到当前行第一个非空字符
0
(注意是数字),<Home>
移动到当前行的第一个字符
f字符x
向前(右)查找本行中的字符x,把光标停留在x上
F字符x
向后(左)查找本行中的字符x,把光标停留在x上
t字符x
向前(右)查找本行中的字符x,把光标停留在x的前一个字符上
T字符x
向后(左)查找本行中的字符x,把光标停留在x的后一个字符上
以上四个命令可以通过 ;
重复, ,
则用于反向重复.
%
寻找匹配的括号
数字G
移动到文件的数字行上
H
移动到视野(屏幕)内的第一行
M
移动到视野(屏幕)内的中间
L
移动到视野(屏幕)内的最后一行
CTRL-G
显示当前所在位置信息
:set number
显示行号
:set nonumber
关闭行号显示
:set ruler
在屏幕右下角显示当前光标位置
CTRL-U
向上滚动半屏
CTRL-D
向下滚动半屏
CTRL-E
向下滚动一行
CTRL-Y
向上滚动一行
CTRL-F
向下滚动一屏
CTRL-B
向上滚动一屏
zz
让当前行显示在屏幕中间
zt
让当前行显示在屏幕顶部
zb
让当前行显示在屏幕底部
简单查找
/String
查找String
n
向前查找下一个匹配项
?String
反向查找String
N
反向查找下一个匹配项
:set ignorecase
查找忽略大小写
:set ignorecase
取消查找忽略大小写
把光标移动到单词下输入 *
向前查找当前单词 #
向后查找当前单词
/String\>
只匹配String在词末
/\<String
只匹配String在词首
/\<String\>
全词匹配
:set hlsearch
高亮显示查找匹配项
:set nohlsearch
关闭高亮显示查找匹配项
:nohlsearch
关闭本次高亮显示,下次查找时又会开启
:set incsearch
输入字符串的过程中就显示匹配点
:set nowrapscan
找到文件尾后停止查找
简单的查找模式
/^include
匹配在一行开始的include
/$include
匹配在行尾的include
.
匹配任何单个字符
特殊字符用\
转意
使用标记
``
和 ''
回到上一个跳转点
如果你当前在a处,之后跳转到b处,则 ``
会让你跳回a出,如果你再次输入``
会让你又跳回b处.
CTRL-O
跳转到一个较老的地方
CTRL-I
跳转到以各较新的地方
与 ``
和 ''
不同,CTRL-O
会一直往后跳,CTRL-I
则一直往前跳.
:jumps
显示可以跳往的位置列表,最后使用的标记用>
标记出来
vim可以在文本中自定义26个标记(a到z)
标记使用方式,m字符
,在当前光标处设置标记.`字符
移动到标记字符处
:marks
显示所有标记的列表