2011-12-20 71 views
2

我設置我的vim編輯器(我用的MacVim)保存文件時,將自動失去焦點:Vim的:保存在FocusLost和執行自動命令

autocmd FocusLost * silent! wall 

我也自動剝去Python文件結尾的空白使用這個自動命令:

autocmd BufWritePre *.py :%s/\s\+$//e 

這種自動命令完美的作品,當我手動保存文件(通過輸入:W或按⌘S),但它不執行(即。當我切換到另一個應用程序並且自動寫入緩衝區時,空白區不會被刪除)。

如何修改這些自動命令以使它們一起工作?

回答

3

您需要將FocusLost自動命令更改爲:

autocmd FocusLost * nested silent! wall 

有關詳細信息,請參閱:h autocmd-nested

1

我不能在圖形Vim的測試,但你可以嘗試一些選項:

  • 加入一些事件在相同的自動命令autocmd BufWritePre,FocusLost *.py ...
  • 從事件執行一個自動命令,類似:
    autocmd BufWritePre *.py :execute "%s/\s\+$//e" | doautocmd FocusLost %
+0

謝謝...我自己可能已經想到了! ;-)我使用了「多個事件加入」方法。 – GaretJax 2011-12-20 13:41:48

+0

你有什麼想法,爲什麼它不能直接與我的原始設置? – GaretJax 2011-12-20 13:42:20

+0

@GaretJax:對不起,我無法幫助解決這個問題。似乎自動命令不能鏈接,但不知道原因。 – Birei 2011-12-20 17:48:05