为什么使用/ foo在Vim中更改光标位置被认为是跳转,但使用w命令这样做是不是?

时间:2014-04-14 05:27:26

标签: vim

当我按 w 从一个单词移动到另一个单词时,按 Ctrl - o 不会将我带到上一个单词。基本上,使用 w 命令从一个单词移动到另一个单词不会在:jumps中创建新条目。

但是当我因为搜索命令(比如说/foo)而更改光标位置时,按 Ctrl - o 会将我带回上一个光标位置。换句话说,搜索文本会在:jumps中创建一个新条目。

如何从:help了解光标位置的哪些变化被视为跳跃而哪些不被视为跳跃?

1 个答案:

答案 0 :(得分:9)

您会在:help jump-motions找到影响跳转列表的所有动作:

  

“jump”是以下命令之一:“'”,“`”,“G”,“/”,“?”,“n”,   “N”,“%”,“(”,“)”,“[[”,“]]”,“{”,“}”,“:s”,“:tag”,“L”,“M” “,”H“和   开始编辑新文件的命令。

w这样的“短”动作不会影响跳转列表的原因是它会变得不那么有用;跳转最好用于撤消缓冲区周围的大型导航(例如,在搜索之后,跳转到下一个函数等),而不是当短的局部移动可以通过相反的运动轻松撤消时(例如w - >; { {1}})。请注意,此地点不限于同一条线;它也适用于bj之类的线条动作(尽管有些人更喜欢将k计数记录在跳转列表中,这可以通过映射来完成)