光标移动
移动计数
[Number] [Motion]
重复动作多次,如6j
向下移动6行
字符导航
h
向左移动光标j
向下移动光标k
向上移动光标l
向右移动光标
单词导航
w
移动光标到下一个单词的开头e
移动光标到当前单词的结尾b
移动光标到上一个单词的开头ge
移动光标到上一个单词的结尾
行导航
0
跳到本行第一个字符^
跳到本行第一个非空字符$
跳到本行最后一个字符g_
跳到本行最后一个非空字符[Number]|
跳到本行指定列f
在同一行向后搜索第一个匹配F
在同一行向前搜索第一个匹配t
在同一行向后搜索第一个匹配,并停在匹配前T
在同一行向前搜索第一个匹配,并停在匹配前;
在同一行重复最近一次搜索,
在同一行向相反方向重复最近一次搜索
句子和段落导航
(
跳到前一个句子)
跳到下一个句子{
跳转到上一个段落}
跳转到下一个段落
匹配导航
%
查找配对的括号)
、]
、}
行号导航
gg
跳转到第一行G
跳转到最后一行[Number] G
跳转到指定行,如6G
移动到第6行ctrl-g
显示当前光标所在行位置以及文件状态信息:set relativenumber number
展示当前行号和其他行相对当前行的行号
窗格导航
H
跳转到屏幕的顶部M
跳转到屏幕的中间L
跳转到屏幕的底部nH
跳转到距离顶部n行的位置nL
跳转到距离底部n行的位置
滚动
ctrl-e
向下滚一行ctrl-d
向下翻半页(d = down)ctrl-f
向下一翻页(f = forword )ctrl-y
向上滚一行ctlr-u
向上翻半页(u = up)ctrl-b
向上一翻页(b = backward)zz
让光标所在的行居屏幕中央zt
让光标所在的行居屏幕最上一行(t = top)zb
让光标所在的行居屏幕最下一行(b = bottom)
搜索导航
/
向后搜索一个匹配?
向前搜素一个匹配n
重复上一次搜索(和上一次方向相同)N
重复上一次搜索(和上一次方向相反)*
向后查找光标所在的完整单词#
向前查找光标所在的完整单词g*
向后搜索光标所在的单词g#
向前搜索光标所在的单词:set hlsearch
设置搜索高亮:set incsearch
设置增量搜索,输入时不断匹配输入内容
位置标记
m[Mark]
用标签标记一个位置'[Mark]
跳转到指定标签的行`[Mark]
精确回到指定标签的位置(行和列):marks
查看所有标记
跳转
:jumps
查看跳转列表ctrl-i
跳转到之后的位置ctrl-o
跳转到之前的位置
编辑
i
在光标处,进入插入模式a
在光标所在单词之后,进入插入模式A
在光标所在行的行末,进入插入模式o
在光标下方另起一行,进入插入模式O
在光标上方另起一行,进入插入模式c
更改(删除,并进入插入模式)d
删除y
复制p
粘贴u
撤销ctrl-r
恢复撤销x
删除光标后的一个字符s
删除光标后的一个字符,进入插入模式r
替换光标后的一个字符R
连续替换光标后的多个字符
替换
:%s/old/new
将第一个查找到的old替换为new:%s/old/new/g
将所有的old替换为new:%s/old/new/gc
将所有的old替换为new,替换时需要确认[Number],[Number]s/old/new/g
将指定两行的old替换为new
其它
:! [COMMAND]
执行外部命令:w [FILENAME]
另存为文件v :w [FILENAME]
在可视模式下,将选中内容另存为文件:r [FILENAME]
粘贴文件内容:r ![COMMOND]
粘贴外部命令输出
参考文档
- Learn-Vim_zh_cn
vimtutor