我正在使用Perforce,我的客户端中所有文件默认都是只读的。因此,当我在vim中浏览源代码时,缓冲区也被标记为只读(可能这不是一个准确的措辞:我可以编辑它的内容,但不能保存,除非加上'!')。在某个时刻,我开始进行一些编辑,并发现我必须在Perforce中检出文件。我有一个“好”的命令可以做到这一点:
command PE !p4 edit %
但是在vim完成编辑后,它会提供以下两个选项之一:
- 从磁盘加载内容(我不想这样做,因为我将失去我的编辑)。
- 或保持缓冲区不变,但这会保留只读模式(我也不想要)。
:set noro
来手动更改只读模式,但显然想避免这种情况。目前我已将其添加到上面的PE
命令中,但这并没有检查文件的真实状态,似乎有点危险。command PE !p4 edit % | set noro
我真正想要的是vim中文件在磁盘上和缓冲区之间的“真正”的只读状态同步。
更新:神奇的是,最新版本可以直接使用--如果
p4 edit
失败,则不会删除缓冲区的RO状态。不知道它是如何工作的...
:!
需要:execute
;你的尝试在这方面也是错误的。请看我的编辑。 - Ingo Karkat