我經常在正常模式下編輯東西,只是爲了實現我的更改不是打算的,因此,我撤消然後按下K/L/J/H繼續,但同時我已經處於插入模式,所以我必須首先擺脫它。VIM - 如何讓撤消讓我回到以前的模式中?
我想在我的.vimrc中插入一條規則,讓我回到我剛剛做的任何更改之前所處的模式。
IE:移+ S(刪除線,並開始編輯) - >撤銷:早在正常模式 加成:CIW - > asdahsdasdh - >撤消:早在正常模式
PS:我實際使用撤消Command + Z,默認的MacOSX撤銷組合。
我經常在正常模式下編輯東西,只是爲了實現我的更改不是打算的,因此,我撤消然後按下K/L/J/H繼續,但同時我已經處於插入模式,所以我必須首先擺脫它。VIM - 如何讓撤消讓我回到以前的模式中?
我想在我的.vimrc中插入一條規則,讓我回到我剛剛做的任何更改之前所處的模式。
IE:移+ S(刪除線,並開始編輯) - >撤銷:早在正常模式 加成:CIW - > asdahsdasdh - >撤消:早在正常模式
PS:我實際使用撤消Command + Z,默認的MacOSX撤銷組合。
OS X被捕獲Cmd的Ž鍵盤事件和處理撤消在應用程序級別,所以對於<D-z>
任何映射將被忽略。然而,你可以重寫這個來做你想做的事。
首先,添加一個映射到你的.vimrc:
if has("gui_running")
inoremap <D-z> <Esc>:undo<CR>
endif
重新啓動的MacVim確保.vimrc裏已重新加載。
爲了得到這個工作,你還需要告訴的MacVim不使用Cmd的ž的「撤消」菜單項。
(這些方向是基於優勝美地/埃爾卡皮坦但都是早期版本類似。)
(我選擇移Ctrl鍵選項Cmd的X。)
現在回去的MacVim,如果你拉下編輯菜單中的 「撤消」 應該有您選擇的組合鍵,並且您的Cmdz快捷方式應按照您所描述的方式工作。
完美。這有效地工作。由於我使用Phpstorm,有時候我也會重複這個過程。謝謝 :) –
當您撤消時,您不是已經處於正常模式嗎?我假設你按'u'撤消? – mkrieger1
這將是正確的,如果我使用U,我沒有意識到會混淆任何人,我只是習慣於使用命令+ Z(默認macosx撤消),我沒有實際上移動使用U,我會推薦我的問題。 –
@JoaoCarlos恐怕真正的和最簡單的解決方案是停止使用command + z。我也是Mac用戶。但使用escape + u更自然,並且是Vim打算使用的方式。但是有一點非常重要:我將我的大寫鎖定鍵重新映射到esc。沒有它,我無法生活。當這些編輯器最初被使用時,這是鍵盤的原始位置。 [Seil](https://pqrs.org/osx/karabiner/seil.html.en)可以爲你做到這一點。我還使用Karabiner(同一網站)來控制+空間,因爲大寫鎖定重新映射(不想丟失,但很少使用)。 Espero ter ajudado! – sidyll