魏长东

weichangdong

东邪

vim的标记

用过php的一些IDE的编辑器的人,应该用过其中的标签的功能,比如添加一个标签1,你可以在这个文件的任何位置,一下子定位到标签1的位置。其实vim也有这个功能,vim的这个功能,比ide操作方便多了。

Vim 允许你在文本中放置自定义的标记。命令 “ma” 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记(a到z)。这些标记是不可见的,只是一个由 Vim 记住的位置。
要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记a的命令是:

`a(不是单引号,是键盘左上角Esc下的那个键)

命令 ‘mark(单引号加上一个标记)会移到标记所在行的行首。这与 `mark 命令是不同的,
后者是移到标记所在行上被标记的列(也就是这个更加精确)。

标记在需要处理一个文件的两个相关地方的时候非常有用。假设你在处理文末的时候需要
查看文首的一些内容,先移动到行首,设置一个标记 s (start):

ms

然后移动到你需要处理的地方,再设置一个标记 e (end):

me

现在你可以随意移动,当你需要看开头的地方,可以使用这个命令移到那里:

‘s

然后使用 ” 跳回来。或者用 ‘e 跳到你正在处理的文尾的地方。
这里使用 s 和 e 作标记名没有特别的含义,只是为了好记而已。

你可以用如下命令取得所有的标记的列表:

:marks

你会注意到有一些特殊的标记,包括:

‘       跳转前的位置
“       最后编辑的位置
[       最后修改的位置的开头
]       最后修改的位置的结尾

补充:如果想要删除marks,可用命令delmarks + markname 。