vim中有撤销上一次的命令行操作的命令吗?

笨笨阿林
  • 272

vim中(我用的是Windows下的gVim),我们知道u为撤销上一次的编辑操作的命令,那有没有撤销上一次的命令行操作的命令呢?比如我键入:set list之后,我想直接取消该操作,在不输入:set nolist的情况下,有其他更为直接的快捷键和命令吗?

回复
阅读 3.3k
2 个回答

如果你要问按键映射的话还真没有,不过具体到你举的例子可以换用 :set list! 来切换开关状态,其实绝大部分的 vim options 都可以用这样的方法来切换,所以你也可以把常用的映射到按键上,这样会方便很多。Tim Pope 写过一个插件好像叫 unimpaired,这个插件就是把很多这种切换式的命令帮你做了预先的映射,对提高效率帮助很大。

更准备的说, u是撤销上次的修改操作. 所谓修改操作, 是指改变了文本, 包括文本内容和文本位置.

在此基础上, 如:s替换操作, 命令行操作, 改变文本了, 所以u可以还原.

:set是设置编辑器特性, 并不属于修改操作, 不改变文本, 所以u并不起作用.

对于:set没有别的快捷方式, 取消上次的认定.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏