Есть ли одобренный способ для запроса, открыт ли документ редактором в Linux?
Например, если документ редактируется, мы можем предупредить, что документ открыт и должен быть сохранен до слияния или извлечения git . Мы также можем захотеть избежать автоматического ведения (удаление конечных пробелов и т.д.) Для файлов, которые активно редактируются.
Есть три очевидных, но ошибочных метода.
- Проверьте, открыт ли файл с помощью
lsof. Однако большинство редакторов не оставляют файл открытым при редактировании документа. - Проверьте, открыто ли окно редактора с помощью
wmctrl -l. Это ограничено редакторами X, и даже тогда, только если документ является активной вкладкой. - Посмотрите, есть ли временный файл. Например, если файл
.foo.swpсуществует, мы можем предположить, что файлfooоткрыт вvim, особенно если.foo.swpновее, чемfoo. Однако не существует единой схемы именования для разных редакторов, и некоторые редакторы, такие какLyXмогут не создавать временный файл мгновенно.
Так есть ли рекомендуемый способ определения того, открыт ли документ в редакторе, который работает во всех редакторах (или, по крайней мере, в редакторах, совместимых с некоторым стандартом Gnome/KDE/ другим)?
