Поведение Vim отличается при сохранении файлов - PullRequest
0 голосов
/ 07 февраля 2019

В настоящее время я пишу скрипт на python для реализации наблюдения за файлами с помощью pyinotify на linux.Что отличается от других инструментов, так это то, что журналы audd используются для обогащения вывода.

В нескольких системах мой скрипт работает как чудо, но одна система демонстрирует другое поведение при редактировании файлов с использованием vim: В некоторых системах файлы записываются с использованием

/etc/login.defs OPEN
/etc/login.defs ACCESS
/etc/login.defs ACCESS
/etc/login.defs CLOSE_NOWRITE,CLOSE
/etc/login.defs MODIFY
/etc/login.defs OPEN
/etc/login.defs MODIFY
/etc/login.defs MODIFY
/etc/login.defs CLOSE_WRITE,CLOSE
/etc/login.defs ATTRIB
/etc/login.defs OPEN
/etc/login.defs ACCESS
/etc/login.defs ACCESS
/etc/login.defs CLOSE_NOWRITE,CLOSE
/etc/login.defs OPEN
/etc/login.defs ACCESS
/etc/login.defs CLOSE_NOWRITE,CLOSE

Это хорошо, потому что различие файлов приводит к чистым результатам.В других системах vim ведет себя так при записи файлов:

/etc/login.defs MOVE_SELF
/etc/login.defs ATTRIB
/etc/login.defs DELETE_SELF
...
creating a new file

Может кто-нибудь объяснить, почему vim показывает такое поведение и как я могу заставить vim в моей тестовой системе вести себя так же, так что яспособен справиться с этим?

Среда: Debain 9.7 vim Версия: 2: 8.0.0197-4 + deb9u1

1 Ответ

0 голосов
/ 07 февраля 2019

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

Поведение контролируется параметрами 'backup' и 'writebackup' Vim.См. :help backup-table для подробного объяснения.

Для inotify наблюдений поведение по умолчанию проблематично.Вы можете попробовать :set nowritebackup, но это увеличивает риск потери данных, если вы также не :set backup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...