2016-03-07 28 views
1

我希望能夠設置MacVim,使其在保存緩衝區後切換回正常模式。例如:可以說我在插入模式下添加了一些文本,然後點擊「Command + S」進行保存,我希望在保存操作完成後進入正常模式。保存在MacVim中時,我可以自動退出插入模式嗎?

這可能嗎?

注意:因爲上述情況尚不清楚,我不想花更多時間在插入模式,但更少。我想在保存時自動退出插入模式。

+2

爲什麼不用Vim的方式呢?用''返回到正常模式,並用':w '寫入。 – romainl

+0

我正在使用LiveReload很多,所以我通常會想要插入模式,鍵入一些文本,點擊保存,當文件更改時,Web瀏覽器將會更新,然後我發現我幾乎總是希望返回到正常模式並使用「}」「)」「/ search」跳到文件中的其他地方等。 – f1lt3r

回答

0

想要通常處於插入模式是使用Vim錯誤。如果它適合你,那很好;但是你永遠不會在堅持這種習慣的同時達到Vim的潛力;還不如用記事本++/SublimeText3/...

如果你真的想要的話,你可以有類似:inoremap <C-s> <C-o>:w<CR>保存和留在插入模式,或:inoremap <C-s> <Esc>:w<CR>保存並移動到正常模式。 (它僅適用於圖形Vim,因爲終端Vim通常不會收到Ctrl-S。)

+1

感謝您的回答,我會試試這個。注意:您可能有錯誤的印象,我絕對不希望通常處於插入模式。只是碰巧我不想點擊「Caps/Esc」然後點擊「Command + S」來保存。我只是想點擊「Command + S」,如果我在Insert中做某件事,就讓它回到Normal模式。 – f1lt3r

+0

您的答案似乎適用於「Ctrl + S」,但不適用於「Command + S」。我試圖使用:':inoremap :w ' – f1lt3r

+1

呃,對不起,誤讀了這個問題。 MacVim中的''綁定到菜單「保存」操作,因此MacVim從不會看到您的映射。在你的'.gvimrc'中使用'macmenu File.Save key = '[禁用MacVim鍵盤快捷鍵](http://stackoverflow.com/questions/13436823/disable-use-of-macvim-keyboard-shortcuts)不是'.vimrc');那麼你應該能夠使用你嘗試的綁定。 – Amadan

2

將下列行添加到.gvimrc將禁用MacVim的[Cmd + S]快捷方式,並將模式切換回正常保存前。

當按[Cmd] + [S]鍵(因爲這會激活替代命令)時,它也會阻止Vim進入插入模式。注意:您仍然可以像往常一樣替代按[S]鍵。

" Disable MacVim save shortcut 
macmenu File.Save key=<nop> 

" Exit to Normal mode upon [Cmd+S] 
inoremap <D-s> <Esc>:w<CR><Right> 
vnoremap <D-s> <Esc>:w<CR> 

" Save in Normal mode (block Substitute) 
nnoremap <D-s> :w<CR> 

感謝@Amadan指引我在正確的方向。

相關問題