2011-04-09 199 views
4

我想在Vim中實現一個AutoCmd,噹噹前緩衝區被修改時需要執行它。Vim緩衝區已被修改

我已經通讀了文檔中所有可用於AutoCmd的事件,但無法找到有助於確定何時修改緩衝區的內容。

這並不一定意味着「當寫入緩衝區時」,因爲當緩衝區被修改時需要調用我需要觸發的操作,其中包括正在寫入。

有關如何實現BufIsModified可實現此目標的任何想法?

注:What is a vimrc function to determine if a buffer has been modified?重複,因爲這個問題是關於autocmd不僅緩衝區修改後的校驗

+0

的可能重複:http://stackoverflow.com/q/6538779 – bitmask 2011-09-03 01:20:28

+2

這是奇怪的,這個問題怎麼來的是另外一個問題重複,如果這是第一個問? – alfredodeza 2011-09-05 16:07:43

+1

什麼重複?我如何獲得http://stackoverflow.com/q/6538779作爲** autocmd **工作? (原因我來到這裏..) – antak 2012-10-24 04:29:55

回答

2

突然出現在我的腦海裏的唯一的事情就是使用CursorMovedCursorMovedI事件。

HTH

+0

聽起來像這樣會工作,並在事件功能測試' &modified' vim變量,如果不變則爲0,如果自上次寫入磁盤後發生變化,則爲1。 – 2011-04-09 19:26:29

+1

您可以運行一堆Ex命令來完全轉換緩衝區,而無需移動光標或進入插入模式。 – intuited 2011-04-09 20:37:03

+1

我願意與Ex命令妥協。答案與赫伯特的評論結合起來就是我想要的。謝謝! – alfredodeza 2011-04-09 23:57:42