有时当我点击 :w 在 VIM 上编辑代码时,我发现该文件没有在源服务器上签出(在 FS 上只读)。
所以我继续 svn|Teamprise Explorer 然后签出文件(使文件可写),但之后当 :w 执行时它给出了相同的消息,似乎 vim 没有检查权限是否已更改。
现在的问题是,如果我点击 :e 文件会重新加载,但我会使用 :w! 不是那么优雅,它可以把你变成一个懒惰的程序员,总是这样做然后与“最新版本”相比。
是否存在一些如何仅重新加载权限?
我不知道如何仅加载权限,但还有其他一些事情可以尝试。
一种是在文件只读时防止修改,使用此处的脚本:
function UpdateModifiable()
if !exists("b:setmodifiable")
let b:setmodifiable = 0
endif
if &readonly
if &modifiable
setlocal nomodifiable
let b:setmodifiable = 1
endif
else
if b:setmodifiable
setlocal modifiable
endif
endif
endfunction
autocmd BufReadPost * call UpdateModifiable()
另一种是为您的源代码管理获取或编写插件。我们在工作中使用 perforce,我发现了一个插件,可以让我直接从 vim 菜单中从 perforce 中结帐。此外,如果我尝试编辑一个未检出的文件,vim 会提示我询问是否要这样做。