首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vim中重新加载文件的属性而不丢失更改

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

Stack Overflow用户
提问于 2012-08-30 20:48:56
回答 1查看 378关注 0票数 4

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

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

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

是否存在一些仅重新加载权限的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-30 21:11:44

我不知道如何只加载权限,但还有其他几件事可以尝试。

一种方法是使用here中的脚本防止在文件为只读时进行修改

代码语言:javascript
复制
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会提示我询问是否要这样做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12197232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档