2012-05-08 31 views
4

我希望我的應用在保存文件時自動更新。所以我使用inotify(ubuntu)來創建檢測事件的觀察者。讓vim修改文件而不是移動它的新版本?

問題是vim 覆蓋該文件,而不是更新它。所以我的觀察者在第一次更新後就會丟失。

我想知道,有沒有辦法設置vim,以便它不使用交換文件並直接更新文件?

(我試過:set noswapfile-n選項,刪除交換文件,無需改變行爲)

回答

6

你可以這樣做:

:set backupcopy=yes 
+0

謝謝你,我已經觸發了修改事件。 – Simon

+0

這對OSX 10.11.2(El Capitan)不起作用,在保存文件時,我仍然在'grunt-contrib-watch'上得到兩個更改事件 – ekkis

+0

這適用於freebsd – Farsheed

2

Vim裏,你可以通過'backupcopy'設置對其進行控制;然而,有一次我的備選路由和監控的目錄,而不是文件本身:

inotifywait --quiet --monitor --event modify --format '%w%f' "$dir" 

這需要一些處理我的腳本(檢查是否修改後的文件相匹配我的列表),也使我能夠捕捉新創建的文件也是如此。

+0

是的,你是對的,我需要用我的代碼更新... – Simon

相關問題