2009-07-08 183 views
8

有沒有辦法在VIM中禁用警告?在VIM中禁用警告?

特別是,當文件從只讀變爲可寫時,我想禁用警告12。我有一個腳本在perforce中打開文件進行編輯,但vim認爲文件已經更改併發出警告。

謝謝

+0

難道有時文件實際上已經改變了嗎?例如。如果您沒有在VIM中打開頭部修訂版本,則打開編輯會實際嘗試並用最新的文件替換您的文件。 – 2009-07-09 12:55:05

+0

我正在使用的命令「p4編輯」不會同步到該文件的其他版本,而不會明確告訴它。 只有當我在vim後面顯式同步時纔會更改該文件。 – 2009-07-09 18:37:19

回答

6

以下行添加到您的.vimrc文件:

一套自動讀

這將禁用「只讀到可寫」警告

10

我在我的.vimrc中有以下內容;你應該只需要第二個。它將消息回覆到狀態欄,而不是彈出對話框。

autocmd FileChangedRO * echohl WarningMsg | echo "File changed RO." | echohl None 
autocmd FileChangedShell * echohl WarningMsg | echo "File changed shell." | echohl None 

嘗試:help FileChangedShell瞭解更多信息。

2

我一直在使用FileChangedRO一段時間來開始編輯文件時自動檢出文件,並發現W12警告也很煩人。問題是,p4編輯更新文件屬性以刪除只讀標誌。如果作爲初始編輯的一部分,您還要更改文件,Vim將其視爲衝突,因爲它不再是隻讀的。下面是我使用的解決方案,在使用FileChangedShell的情況下,如果文件因其他原因而在外部進行更改,則更保守一些。

let s:IgnoreChange=0 
autocmd! FileChangedRO * nested 
    \ let s:IgnoreChange=1 | 
    \ call system("p4 edit " . expand("%")) | 
    \ set noreadonly 
autocmd! FileChangedShell * 
    \ if 1 == s:IgnoreChange | 
    \ let v:fcs_choice="" | 
    \ let s:IgnoreChange=0 | 
    \ else | 
    \ let v:fcs_choice="ask" | 
    \ endif 
+0

這是一個美麗的解決方案,正是我所期待的,謝謝! – mrkj 2010-11-04 14:25:49