如何撤销一个按键(VIM)

3

当用户不小心按下一个键时,Vim的撤销系统可能变得有些繁琐...

  • 改变模式。
  • 执行多个操作。

有没有一种方法可以撤销并将vim恢复到按下该键之前的状态(光标位置、模式和文本缓冲区)


为了更详细地说明这一点,假设我处于插入模式并按下Returno, 使用我的当前.vimrc将保留当前缩进。这正是我想要的 - 但这意味着撤消意外按键不再是单个操作(在这种情况下,我必须按Esc, u)。

1个回答

4
Vim的撤销系统非常强大(具有撤销分支等功能),但仍然仅限于文本更改。相比之下,编辑器状态(当前模式、缓冲区等)并未涵盖;与撤销相关的任何更改仅在它们是撤销文本更改的副作用时发生(因此,例如,当您撤销删除时,光标会移回到以前删除的范围)。很难想象具备上述功能的撤销系统将如何运作,但我认为附加的“更改”可能会令人感到混乱而不是有帮助,因此我认为这并不理想。如果您偶尔对模式更改或意外执行映射感到惊讶,请尝试通过以下方式改善设置:清晰地突出显示当前模式(像Airline这样的插件在状态栏中醒目地进行此操作,包括颜色变化)、通过:set showcmd显示部分映射、增加'timeoutlen',以便您有更多时间输入(长)映射、重构映射,使它们更容易输入,或优先考虑使用自定义命令而非映射(避免超时问题)。

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