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
對於