4

有时当我点击 :w 在 VIM 上编辑代码时,我发现该文件没有在源服务器上签出(在 FS 上只读)。

所以我继续 svn|Teamprise Explorer 然后签出文件(使文件可写),但之后当 :w 执行时它给出了相同的消息,似乎 vim 没有检查权限是否已更改。

现在的问题是,如果我点击 :e 文件会重新加载,但我会使用 :w! 不是那么优雅,它可以把你变成一个懒惰的程序员,总是这样做然后与“最新版本”相比。

是否存在一些如何仅重新加载权限?

4

1 回答 1

3

我不知道如何仅加载权限,但还有其他一些事情可以尝试。

一种是在文件只读时防止修改,使用此处的脚本:

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 会提示我询问是否要这样做。

于 2012-08-30T13:11:44.130 回答