最常用的几个
移动
描述 | 命令 | 参数 | 举例 | |
---|---|---|---|---|
上下左右 | h、j、k、l | n | 10j :-向下10行 | |
行首 | 0(^第一个非空字符0) | 无 | ||
行末 | $(g0、g^) | n | 10$ :往下10行的行尾 | |
中间 | gm | 无 | ||
列 | | | n到第几列 | 10| :到第10列(字符) | |
找到某个字符 | f | n、{cahr} | 10fc :找到第10个c字符 | |
重复寻找 | ;向前,反方向 | n | 重复f或t(t是在找到的字符前一个字符) | |
第几行 | G(或者gg) | n | 10gg或者10G :到第10行 | |
第一行 | gg | |||
最后一行 | G | |||
移动多个单词 | w(b是向后) | n | 10w : 向前移动10个单词(单词的第一个字符) | |
移动多个单词,但位于单词的最后字符 | e,ge(向后) | n | 10e :向前移动10个单词(单词的最后字符) | |
移动多句 | )和( | n | 识别空行、句号。、感叹号等 | |
移动多段 | }{ | n | 移动多段,识别空行 | |
移动多个章节 | ]]或者[[ | n | 10[[: 向前10章 | |
移动到某个标识 | ]+标识((、{、m(java里的方法)、#(java里的注释)、*(java里的注释)) | n | 20[m: 到第20个方法 | |
移动到屏幕某行 | H、L、M | n | H是从上往下第几行、M是中间行、L是从上往下第几行 |
搜索
/something: 在后面的文本中查找something。
?something: 在前面的文本中查找something。
/pattern/+number: 将光标停在包含pattern的行后面第number行上。
/pattern/-number: 将光标停在包含pattern的行前面第number行上。
n: 向后查找下一个。
N: 向前查找下一个。
标记
使用标记可以快速移动
m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。
`{a-z}: 移动到标记位置。
'{a-z}: 移动到标记行的行首。
``: 移动到上次编辑的位置。''也可以,不过``精确到列,而''精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。
`": 移动到上次离开的地方。
`.: 移动到最后改动的地方。
:marks 显示所有标记
:delmarks a b -- 删除标记a和b。
:delmarks a-c -- 删除标记a、b和c。
:delmarks a c-f -- 删除标记a、c、d、e、f。
:delmarks! -- 删除当前缓冲区的所有标记。
:help mark-motions 查看更多关于mark的知识。
标签
翻页
ctrl+f: 下翻一屏。
ctrl+b: 上翻一屏。
ctrl+d: 下翻半屏。
ctrl+u: 上翻半屏。
ctrl+e: 向下滚动一行。
ctrl+y: 向上滚动一行。
n%: 到文件n%的位置。
zz: 将当前行移动到屏幕中央。
zt: 将当前行移动到屏幕顶端。
zb: 将当前行移动到屏幕底端。