3

Есть ли одобренный способ для запроса, открыт ли документ редактором в Linux?

Например, если документ редактируется, мы можем предупредить, что документ открыт и должен быть сохранен до слияния или извлечения git . Мы также можем захотеть избежать автоматического ведения (удаление конечных пробелов и т.д.) Для файлов, которые активно редактируются.

Есть три очевидных, но ошибочных метода.

  1. Проверьте, открыт ли файл с помощью lsof . Однако большинство редакторов не оставляют файл открытым при редактировании документа.
  2. Проверьте, открыто ли окно редактора с помощью wmctrl -l . Это ограничено редакторами X, и даже тогда, только если документ является активной вкладкой.
  3. Посмотрите, есть ли временный файл. Например, если файл .foo.swp существует, мы можем предположить, что файл foo открыт в vim , особенно если .foo.swp новее, чем foo . Однако не существует единой схемы именования для разных редакторов, и некоторые редакторы, такие как LyX могут не создавать временный файл мгновенно.

Так есть ли рекомендуемый способ определения того, открыт ли документ в редакторе, который работает во всех редакторах (или, по крайней мере, в редакторах, совместимых с некоторым стандартом Gnome/KDE/ другим)?

1 ответ1

0

Каждый пользователь должен иметь свою собственную рабочую область и контролировать свою активность git . Зачем вам автоматические изменения формата контента пользователя, пока он над ним работает? Условия, которые вы контролируете, должны быть относительно редкими. Если это не так, то могут возникнуть проблемы с рабочим процессом.

Автоматические действия по очистке, такие как изменения форматирования, должны применяться к неизмененному коду. При использовании контроля версий они должны быть отдельным коммитом. Такие изменения должны быть относительно легко объединить.

Я не знаю каких-либо стандартов относительно того, когда и если предупреждать об измененных файлах. Однако многие редакторы теперь, по крайней мере, предупреждают, прежде чем перезаписывать измененные файлы. Кроме того, может быть интеграция контроля версий либо в виде встроенной функциональности, либо с помощью плагина.

Похоже, что LyX 2.1 имеет встроенную базовую функциональность GIT. Это может помочь с вашими проблемами с открытыми файлами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .