是否有Vim命令撤消最后一个动作,例如<count> j或Ctrl-f?</count>

时间:2015-04-20 11:20:13

标签: vim vim-plugin

在Vim中,如果我发出跳转命令,例如G,然后我可以使用Ctrl-o将光标放回跳转前的位置。但是,如果我发出了Ctrl-o40j这样的移动命令,Ctrl-f就不会将光标移回到前一个位置,因为它们不会改变跳转列表。是否有一个命令会撤消那些动作?

要清楚,我不是在寻找一个“手动”的答案,例如40k让你从40j回来,因为这样的命令一般不适用Ctrl-o 1}}工作。

此外,如果没有内置命令,那么任何插件都可以吗?

2 个答案:

答案 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'设置标记,然后返回``