Vim中如何撤销光标移动

9

假设我在下面的代码中有一个光标:

internal static SingleSelectList<Country, int> CreateCountrySingleSelectList(List<Country> countries, List<Airport> airPorts)

而且光标位于该行开头。现在我想将光标移动到此代码行中第二个<的位置,该位置位于WORD List<Country> 中。只需按下键序列 f<; 即可到达该位置。
但是如果我因错误而按下另一个 ;,就会跳转到该行中下一个 < 的位置,该位置位于单词 List<Airport> 中。
在这种情况下,如何使用最少的按键来回到第二个 <
是否有一种更快的方法来撤消光标移动,而不是使用 F< 或长时间按下 h 键?
4个回答

15

4
请注意,这并不适用于所有移动命令。“被视为'跳跃'的命令包括搜索、替换和标记。浏览文件不被视为跳跃。”请参见https://vim.fandom.com/wiki/Jumping_to_previously_visited_locations - Luke Griffiths

7
<请勿翻译>
可逆动作的分号是逗号,所以回答您的问题是只使用一次逗号。
您可以通过输入“:h;”查找命令的用法。
;           Repeat latest f, t, F or T [count] times.   
,           Repeat latest f, t, F or T in opposite direction
            [count] times

6
与 Ruslan Osipov 的错误回答相反,f 动作 不会 在跳转列表中存储先前的位置(只有通常跳转到非相邻行的动作才会这样做)。
但是,没有什么能阻止你使用 m' 显式地设置一个跳转。然后,你可以通过 ``<C-O> 返回到该位置。

1

使用快捷键 `` 可以跳回到上一个光标位置。但是重复使用此快捷键不会带您返回光标历史记录,而是在当前和上一个光标位置之间切换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接