你可以使用标注功能来标记一个位置,也就是记录文件某行的某个位置。
标注 | 设置者 | 使用 |
---|---|---|
a -z |
用户 | 仅对当前的一个文件生效,也就意味着只可以在当前文件中跳转 |
A -Z |
用户 | 全局标注,可以作用于不同文件。大写标注也称为「文件标注」。跳转时有可能会切换到另一个缓冲区 |
0 -9 |
viminfo | 0 代表 viminfo 最后一次被写入的位置。实际使用中,就代表 VIM 进程最后一次结束的位置。1 代表 VIM 进程倒数第二次结束的位置,以此类推 |
如果想跳转到指定的标注,你可以先按下 '
/ g'
或者 ``` / `g`` 然后按下标注名。
如果你想定义当前文件中的标注,可以先按下 m
再按下标注名。比如,按下 mm
就可以把当前位置标注为 m
。在这之后,如果你的光标切换到了文件的其他位置,只需要通过 'm
或者 m`即可回到刚才标注的行。区别在于,`'m`会跳转回被标记行的第一个非空字符,而
m会跳转回被标记行的被标记列。根据 viminfo 的设置,你可以在退出 VIM 的时候保留小写字符标注。请参阅
:h viminfo-'` 来获取更多帮助。
如果你想定义全局的标注,可以先按下 m
再按下大写英文字符。比如,按下 mM
就可以把当前文件的当前位置标注为 M
。在这之后,就算你切换到其他的缓冲区,依然可以通过 'M
或 ``M` 跳转回来。
关于跳转,还有以下的方式:
按键 | 跳转至 |
---|---|
'[ 与 ``[` |
上一次修改或复制的第一行或第一个字符 |
'] 与 ``]` |
上一次修改或复制的最后一行或最后一个字符 |
'< 与 ``<` |
上一次在可视模式下选取的第一行或第一个字符 |
'> 与 ``>` |
上一次在可视模式下选取的最后一行或最后一个字符 |
'' 与 ``'` |
上一次跳转之前的光标位置 |
'" 与 ``"` |
上一次关闭当前缓冲区时的光标位置 |
'^ 与 ``^` |
上一次插入字符后的光标位置 |
'. 与 ``.` |
上一次修改文本后的光标位置 |
'( 与 ``(` |
当前句子的开头 |
') 与 ``)` |
当前句子的结尾 |
'{ 与 ``{` |
当前段落的开头 |
'} 与 ``}` |
当前段落的结尾 |
标注也可以搭配 范围 一起使用。前面提到过,如果你在可视模式下选取一些文本,然后按下 :
,这时候你会发现命令行已经被填充了 :'
。对照上面的表格,现在你应该明白了,这段代表的就是可视模式下选取的范围。
请使用 :marks
命令来显示所有的标注,参阅 :h mark-motions
来获取关于标注的更多帮助。