存档

文章标签 ‘mark’

VIM标记和跳转列表介绍

2013年2月25日 没有评论

跳转列表

当你用 “G” 命令跳到另一个地方,Vim 会记住你从什么地方跳过去的。这个位置成为一个标记,要回到原来的地方,使用如下命令:

”(两个单引号)和“(两个反引号,在键盘上和”~”共用一个键)“两个 命令可以在两个位置上跳来跳去。

使用命令”(两个单引号)和“(两个反引号,在键盘上和”~”共用一个键)可以返回到最后跳转的位置。例如,当前光标位于文件中第1234行,然后我使用”4321G“命令跳转到第4321行;这时如果我按”或“,就会跳回到1234行。

因为这两个命令也属于跳转命令,所以第4321行也被记入跳转表,如果你再次使用这两个命令,就会发现自己又跳回第4321行了。

这两个命令有一点不同,“在跳转时会精确到列,而”不会回到跳转时光标所在的那一列,而是把光标放在第一个非空白字符上。

而 CTRL-O 命令则跳到一个 “较老” 的地方 (提示: O 表示 older)。CTRL-I 则跳到一个 “较新” 的地方

:jumps 命令能输出一个你可以跳往的位置的列表。最后一个你使用的标记会用 “>” 符号标记出来。

 

标记

Vim 允许你在文本中放置自定义的标记。命令 “ma” 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记 (a 到 z)。这些标记是不可见的,只是一个由 Vim 记住的位置。

`{mark}要跳到一个你定义的标记所在行对应列(可以认为是你标记对应的光标位置),可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记 a 的命令是: `a

需要注意的是,以单引号开始的语法 ‘{mark}是跳转到标记所在行的行首.

在同一行多列间进行移动时使用 `{mark}(反引号)会非常有用哦,‘{mark}(单引号)就无能为力了

删除mark的命令是:delmarks + markname

 

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

到有一些特殊的标记,包括:

‘ 跳转前的光标位置

” 最后编辑的光标位置

[ 最后修改的开始位置

] 最后修改的结束位置

注:mark仅在当前文件跳转有效,jumps可在多个文件之间来回跳转

其实标记不单在光标跳转时用到,在其他操作也可以灵活运用,比如多行复制: “ay’b命令,即可以实现复制从当前光标行到标记b所在行内容到寄存器a

阅读全文…

分类: VIM 标签: , , ,