2009-07-08 130 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