如何在vim中重新加载文件的属性而不会丢失更改

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

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

现在问题,如果我点击:e文件被重新加载,但我会松开每一个变化,使用:W!不是那么优雅,它可以把你变成一个懒惰的程序员,总是这样做,然后比较’最新版本’.

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

解决方法

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

一种是使用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会提示我询问是否要这样做.

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...