У меня есть config-файл, который я сохраняю открытым в vim, но иногда он изменяется на диске, и эти изменения не отражаются на терминале. Могу ли я обновить содержимое на экране без закрытия и повторного открытия файла? Если так, то как?
362
Ответы:
Вы можете использовать
:edit
команду без указания имени файла, чтобы перезагрузить текущий файл. Если вы внесли изменения в файл, вы можете использовать:edit!
для принудительной перезагрузки текущего файла (вы потеряете ваши изменения).Команда
:edit
может быть сокращена до:e
. Таким образом, принудительное редактирование может быть выполнено:e!
источник
:e!
.:edit
и:edit!
вы можете использовать:e
и:e!
соответственно.u
отменить:e!
.:bufdo e
В дополнение к обновлению файла вручную
:edit
, вы можете поместить в свой~/.vimrc
чтобы Vim автоматически обновлял любые файлы, которые не были отредактированы Vim. Также см
:checktime
.источник
git pull
помните, что несохраненные изменения могут быть потеряны на экране довольно непреднамеренно.gvim
, либо запустить внешние команды.:checktime
autoread
может быть автоматически запущен через X секунд после того, как курсор перестанет двигаться, см. этот ответ .TL; DR
Перейдите к
Wrap-up
заголовку,vimrc
чтобы добавить строки, чтобы сделать вашу жизнь лучше.Вручную
Бегать
:checktime
Автоматически
Чтобы автоматически загружать изменения, добавьте в
vimrc
:set autoread
Этот ответ добавляет предостережение:
Продолжайте читать для решений.
Триггер, когда курсор перестает двигаться
Добавьте к вашему
vimrc
:По умолчанию CursorHold срабатывает после того, как курсор остается неподвижным в течение 4 секунд, и настраивается через время обновления .
Триггер при смене буфера или фокусе терминала
Добавьте следующее к вашему,
vimrc
чтобы срабатыватьautoread
при изменении буферов внутри vim:Поймать фокус окна терминала внутри простого vim
Чтобы
FocusGained
(см. Выше) работать в обычном vim, внутри эмулятора терминала (Xterm, tmux и т. Д.) Установите плагин: vim-tmux-focus-eventsВ версиях tmux> 1.9 вам нужно добавить
.tmux.conf
:Заворачивать
Уведомления, когда
autoread
триггеры также возможны .Вот мои
vimrc
строки для реализации всего вышеперечисленного:Спасибо ErichBSchulz за указание в правильном направлении
au CursorHold
.источник