2015-10-08 16 views
2

我經常在正常模式下編輯東西,只是爲了實現我的更改不是打算的,因此,我撤消然後按下K/L/J/H繼續,但同時我已經處於插入模式,所以我必須首先擺脫它。VIM - 如何讓撤消讓我回到以前的模式中?

我想在我的.vimrc中插入一條規則,讓我回到我剛剛做的任何更改之前所處的模式。

IE:移+ S(刪除線,並開始編輯) - >撤銷:早在正常模式 加成:CIW - > asdahsdasdh - >撤消:早在正常模式

PS:我實際使用撤消Command + Z,默認的MacOSX撤銷組合。

+0

當您撤消時,您不是已經處於正常模式嗎?我假設你按'u'撤消? – mkrieger1

+0

這將是正確的,如果我使用U,我沒有意識到會混淆任何人,我只是習慣於使用命令+ Z(默認macosx撤消),我沒有實際上移動使用U,我會推薦我的問題。 –

+0

@JoaoCarlos恐怕真正的和最簡單的解決方案是停止使用command + z。我也是Mac用戶。但使用escape + u更自然,並且是Vim打算使用的方式。但是有一點非常重要:我將我的大寫鎖定鍵重新映射到esc。沒有它,我無法生活。當這些編輯器最初被使用時,這是鍵盤的原始位置。 [Seil](https://pqrs.org/osx/karabiner/seil.html.en)可以爲你做到這一點。我還使用Karabiner(同一網站)來控制+空間,因爲大寫鎖定重新映射(不想丟失,但很少使用)。 Espero ter ajudado! – sidyll

回答

2

OS X被捕獲Cmd的Ž鍵盤事件和處理撤消在應用程序級別,所以對於<D-z>任何映射將被忽略。然而,你可以重寫這個來做你想做的事。

首先,添加一個映射到你的.vimrc:

if has("gui_running") 
    inoremap <D-z> <Esc>:undo<CR> 
endif 

重新啓動的MacVim確保.vimrc裏已重新加載。

爲了得到這個工作,你還需要告訴的MacVim不使用Cmd的ž的「撤消」菜單項。

(這些方向是基於優勝美地/埃爾卡皮坦但都是早期版本類似。)

  1. 轉至系統預置應用程序。
  2. 單擊鍵盤圖標。
  3. 單擊快捷方式部分。
  4. 點擊左側欄中的應用快捷方式。
  5. 單擊「+」按鈕添加新規則。
  6. 從應用程序下拉菜單中選擇MacVim。
  7. 在「菜單標題」框中鍵入「撤消」(確切地說,沒有其他)。
  8. 單擊進入鍵盤快捷方式框,然後選擇一些永遠不會實際使用的快捷方式。
  9. 點擊「添加」,然後關閉系統偏好設置。

(我選擇Ctrl鍵選項Cmd的X。)

現在回去的MacVim,如果你拉下編輯菜單中的 「撤消」 應該有您選擇的組合鍵,並且您的Cmdz快捷方式應按照您所描述的方式工作。

+0

完美。這有效地工作。由於我使用Phpstorm,有時候我也會重複這個過程。謝謝 :) –

相關問題