2

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

Часто, просто перечитывание буфера является правильным. Как правило, это происходит:

  • Откройте файл в vim.
  • Взломай, сохрани.
  • Сменить ветки в git.
  • Vim обнаруживает, что файл изменился.

На данный момент, я действительно хочу, чтобы файл был перезагружен, поскольку он сохранен. (Если буфер не сохранен, нормальная подсказка в порядке.) Если я нажму / введу "Загрузить файл", это может привести к ошибкам, если у меня есть резервный буфер, который не сохраняется. Просмотр этого сообщения только для модифицированных буферов был бы намного безопаснее.

Что-то, что делает именно то, что я хочу, было бы замечательно, но у меня действительно есть и другие желания (диффузный измененный буфер был бы классным): можете ли вы написать сценарий того, что происходит, когда файл изменяется на диске?

2 ответа2

1

Если :set autoread недостаточно, вы действительно можете написать сценарий поведения; в этом случае происходит событие FileChangedShell , и вы можете подключиться к нему и повлиять на поведение. Смотрите :help FileChangedShell для подробностей.

0

Похоже, опция автоматического чтения vim будет делать то, что вы ищете. Вы можете включить это, добавив следующее в файл vimrc или введя его в сеанс vim:

:set autoread

Вы можете получить больше информации о опции, используя:

:help 'autoread'

Для получения информации о просмотре различий между тем, что находится в буфере vim, и тем, что находится на диске:

:help :DiffOrig

Он содержит некоторый код, который вы можете поместить в ваш файл vimrc , чтобы определить команду :DiffOrig которая будет делать именно это.

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