有时,当我在VIM上编辑代码时,当我点击:w时,我发现文件没有在源服务器上签出(在FS上只读)。
所以我打开svn|Teamprise,然后签出文件(使文件可写),但之后:w被执行时,它会给出相同的消息,似乎vim没有检查权限是否已更改。
现在的问题是,如果我点击:e,文件将被重新加载,但我将丢失所有更改,使用:w!不是那么优雅,它可以把你变成一个懒惰的程序员,总是这样做,然后与“最新版本”进行比较。
是否存在一些仅重新加载权限的方法?
发布于 2012-08-30 21:11:44
我不知道如何只加载权限,但还有其他几件事可以尝试。
一种方法是使用here中的脚本防止在文件为只读时进行修改
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会提示我询问是否要这样做。
https://stackoverflow.com/questions/12197232
复制相似问题