3

VIM 的常用跳转操作

 6 months ago
source link: https://zhiqiang.org/it/vim-jump.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

vim 和普通的文本编辑器不一样,不能用鼠标拖动,需要用快捷键操作,控制光标所在位置。

1、行内移动

  • h/l:前/后移一个字符。
  • b/w:前/后移到一个单词的开头处(以特殊字符包括空格为分界线)。
  • B/W:前/后移连续大单词的开头处(以空格字符为分界线)。
  • ge/e:前/后移到一个单词的结尾处(单词定义类似于 b/w)。
  • gE/E:前/后移到一个单词的结尾处(单词定义类似于 B/W)。
  • 0|/^/$:移动到一行的最开始/第一个非空白字符/结尾。
  • 上述几乎所有快捷键前面都可以添加数字,比如4h前移 4 个字母,2|移动到该行起始第 2 个字母位置。但3^的 3 无效,而3$是后面第三行的行尾。

2、行间移动

可以通过Ctrl+O/Ctrl+I在历史位置里往前/往后快速跳转。如果文件已经关闭,将自动打开对应文件。:jumps可以查看具体的历史记录。

  • k/l:上移/下移一行。
  • 3k/3l:上移/下移指定行数( 3 行)。
  • :123/123gg/123G:跳转到指定的行数(第 123 行)。
  • gg/G:跳转到文档最开头/结尾。
  • %:跳转到匹配的括号(包括大小括号、中括号、花括号)。
  • 75%:跳转到文档的 75%处。
  • H/M/L:光标快速跳转到屏幕 上部/中部/下部 位置,屏幕显示的内容不变。
  • zt/zz/zb` :光标在文档里的位置不变,但在屏幕上的位置移动到 上部/中部/下部。
  • PgUp/PgDn:屏幕显示内容上下翻页,光标会移动到屏幕的 上部 / 下部。
  • Space(空格):屏幕显示内容往下翻页,光标移动到屏幕的中部。

3、标记跳转

  • ma:标记位置a,小写字母。本文件内有效,多个文件可以有同样的标记名。
  • mA:标记位置A,全局有效。全局有效,多个文件会互相覆盖,且可以在多个文件之间跳转。
  • `a/`A:跳转到之前标记的位置a
  • "a:跳转到标记位置a的行的第一个非空白字符上。一般不常用。

:marks可以查看所有的标记位置,也包括下面的特殊标记。

3.1、特殊标记

vim 内置了一些自动标记,灵活应用可以在文档内快速跳转。

  • 0:最近编辑位置。该位置是上次 vim 退出前的最后编辑位置。
  • 19:历史位置(全局),数字大的表示更近的。
  • "(双引号):上次退出 Vim 时的本文件的光标位置。
  • `(反引号):上次跳转位置。重复按可以在上次位置和当前位置之间不断切换,类似于间隔按Ctrl+OCtrl+I
  • .:上一次修改的地方。
  • ^:上一次编辑模式退出(但不一定修改了)的地方。
  • [/]:上一次编辑或复制的起始/结束位置。(但部分配置可能屏蔽了`[`]

还有一些特殊标记和跳转无光:

  • m<m>标记一个区域起始结束位置,标记后gv即可按照这两个位置快速选中区域,以便后续操作。该设置是一次性的。

4、段落移动

  • {/}:快速移动到当前段落的开始和结束的空行位置(段落是指一段连续的非空行)。
  • [[/]]:快速在单个函数/类之间跳动。只考虑最外层的级别,不会在类里的多个函数之间跳动。
  • [{/]}:在匹配的大括号{}之间跳转。多次按[{,会不断往前跳到上一层的{]}类似。
  • [(/]):和上面类似,只是匹配()

5、查找跳转

  • fx/Fx:向后/前查找指定的字母x。然后,;可以正向/反向重复查找。但注意该查找不跨行。
  • tx/Tx:和上面的类似,只是光标会停留在搜索到的字符之前。
  • /ss:快速查找指定的字符串xx,支持正则表达式。可以用n/N正向/反向重复查找和跳转。
  • gd:在当前函数块查找当前单词的定义处。不会考虑语意,所以可能和实际情况不符。
  • gD:在当前文件查找当前单词的定义处(第一次出现的地方)。

Q. E. D.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK