vim中(我用的是Windows下的gVim),我们知道u为撤销上一次的编辑操作的命令,那有没有撤销上一次的命令行操作的命令呢?比如我键入:set list之后,我想直接取消该操作,在不输入:set nolist的情况下,有其他更为直接的快捷键和命令吗?
如果你要问按键映射的话还真没有,不过具体到你举的例子可以换用 :set list! 来切换开关状态,其实绝大部分的 vim options 都可以用这样的方法来切换,所以你也可以把常用的映射到按键上,这样会方便很多。Tim Pope 写过一个插件好像叫 unimpaired,这个插件就是把很多这种切换式的命令帮你做了预先的映射,对提高效率帮助很大。
:set list!
更准备的说, u是撤销上次的修改操作. 所谓修改操作, 是指改变了文本, 包括文本内容和文本位置.
u
在此基础上, 如:s替换操作, 命令行操作, 改变文本了, 所以:s替换操作, 命令行操作, 改变文本了, 所以u可以还原.
:s
但:set是设置编辑器特性, 并不属于修改操作, 不改变文本, 所以u是设置编辑器特性, 并不属于修改操作, 不改变文本, 所以
:set
:set对于
如果你要问按键映射的话还真没有,不过具体到你举的例子可以换用
:set list!
来切换开关状态,其实绝大部分的 vim options 都可以用这样的方法来切换,所以你也可以把常用的映射到按键上,这样会方便很多。Tim Pope 写过一个插件好像叫 unimpaired,这个插件就是把很多这种切换式的命令帮你做了预先的映射,对提高效率帮助很大。更准备的说,
u
是撤销上次的修改操作. 所谓修改操作, 是指改变了文本, 包括文本内容和文本位置.在此基础上, 如
:s
替换操作, 命令行操作, 改变文本了, 所以:s
替换操作, 命令行操作, 改变文本了, 所以u
可以还原.但
并不起作用.:set
是设置编辑器特性, 并不属于修改操作, 不改变文本, 所以u
是设置编辑器特性, 并不属于修改操作, 不改变文本, 所以:set
对于