是否有一种认可的方法来查询文档是否在 Linux 中打开编辑器?
例如,如果正在编辑文档,我们可能希望警告文档已打开,应在合并git
或拉取之前保存。我们可能还希望避免对正在编辑的文件进行自动管理(删除尾随空格等)。
有三种明显但有缺陷的方法。
- 使用 测试文件是否已打开
lsof
。但是大多数编辑者在编辑文档时不会让文件保持打开状态。 - 使用 检查编辑器窗口是否已打开
wmctrl -l
。这仅限于 X 编辑器,并且仅当文档为活动选项卡时才有效。 - 查看是否有临时文件。例如,如果文件
.foo.swp
存在,我们可能假设该文件foo
在 中打开vim
,特别是如果.foo.swp
比 更新foo
。但是,编辑器之间没有统一的命名方案,并且某些编辑器(例如 )LyX
可能不会立即创建临时文件。
那么,有没有一种推荐的方法来判断一个文档是否在适用于所有编辑器的编辑器中打开(或者至少是符合某些 Gnome/KDE/其他标准的编辑器)?
答案1
每个用户都应该有自己的工作区域并控制他们的git
活动。为什么您要在用户处理内容时对其自动进行格式更改?您要控制的条件应该是相对罕见的。如果不是,那么工作流程可能存在问题。
应将自动清理操作(例如格式更改)应用于未修改的代码。使用版本控制时,它们应该是单独的提交。此类更改应该相对容易合并。
我不知道关于何时或是否对已更改的文件发出警告的任何标准。但是,现在许多编辑器至少会在覆盖已更改的文件之前发出警告。此外,版本控制集成可能作为内置功能或通过插件实现。
看来 LyX 2.1 内置了基本的 GIT 功能。这可能有助于解决您打开文件时遇到的问题。