在Vim中,如果我发出跳转命令,例如G
,然后我可以使用Ctrl-o
将光标放回跳转前的位置。但是,如果我发出了Ctrl-o
或40j
这样的移动命令,Ctrl-f
就不会将光标移回到前一个位置,因为它们不会改变跳转列表。是否有一个命令会撤消那些动作?
要清楚,我不是在寻找一个“手动”的答案,例如40k
让你从40j
回来,因为这样的命令一般不适用Ctrl-o
1}}工作。
此外,如果没有内置命令,那么任何插件都可以吗?
答案 0 :(得分:7)
您可以覆盖默认动作,例如:
" j, k Store relative line number jumps in the jumplist.
nnoremap <expr> k (v:count > 1 ? "m'" . v:count : '') . 'k'
nnoremap <expr> j (v:count > 1 ? "m'" . v:count : '') . 'j'
还有reljump plugin,它实现了相同的功能。
但是,要小心,因为过度使用会降低跳转列表的实用性。因此,我建议不要更改Ctrl-F / Ctrl-B。
答案 1 :(得分:0)
您可以使用m'
设置标记,然后返回``
。