gpt4 book ai didi

Vim:在缓冲区和磁盘文件之间同步只读状态

转载 作者:行者123 更新时间:2023-12-04 14:12:57 26 4
gpt4 key购买 nike

我正在使用 Perforce,默认情况下我客户端中的所有文件都是只读的。因此,当我在 vim 缓冲区中浏览源代码时,也将其标记为只读(可能这不是一个准确的措辞:我可以编辑其内容,但不能在没有“!”的情况下保存它)。在某些时候,我开始进行一些编辑并发现我必须在 Perforce 中 checkout 文件。我有一个“不错”的命令:

command PE !p4 edit % 

但是在完成后,vim 为我提供了一个选择:
  • 从磁盘加载内容(我不想这样做,因为我会丢失我的编辑)。
  • 或者保持缓冲区不变,但这会保留只读模式(我也不想要)。

  • 当然我可以通过做 :set noro 手动更改 RO但显然想避免这种情况。
    目前我已将其添加到 PE上面的命令,但这不会检查文件的真实状态,所以似乎有点危险:
    command PE !p4 edit % | set noro

    我真正想要的是磁盘上的文件和 vim 中的缓冲区之间只读状态的“真正”同步。

    更新:神秘的是,最后一个版本是开箱即用的——如果 p4 edit不删除缓冲区上的 RO 状态失败。不知道它是如何工作的......

    最佳答案

    Vim 有一个 filewritable()函数来查询文件的访问状态,你为什么不使用它?

    command PE execute '!p4 edit %' | let &readonly = !filewritable(expand('%'))

    关于Vim:在缓冲区和磁盘文件之间同步只读状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367138/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com