Команда для обновления файла с версии на диске: :e!
Как я могу сделать то же самое для всех файлов в буфере?
Предыстория: мне это нужно, потому что я использую git с несколькими ветвями с одним открытым vim, содержащим буфер. Когда я проверяю ветку, я хочу обновить vim.
set noconfirm
перед использованиемbufdo
команды (set confirm
после этого для повторного использования).bufdo e
любопытно, что все буферы не выделены синтаксисомКоманда
:checkt[ime]
предназначена именно для этого.Вам будет предложено перезагрузить все измененные буферы; если вы хотите пропустить подсказку, вы можете сделать это
:set autoread
заранее (вы все равно получите подсказку о буферах с локальными несохраненными изменениями).Это также позволяет избежать проблемы с подсветкой синтаксиса, упомянутой Стивеном Лу в принятом ответе;
:bufdo
отключает подсветку синтаксиса по дизайну .Найдено через: http://vim.1045645.n5.nabble.com/Bug-report-bufdo-e-breaking-syntax-highlighting-on-displayed-buffers-tp1209995p1209998.html
источник
Вот что я положил в свой .vimrc:
источник
Откуда
:help autoread
:Если, как и я, вы просто хотите всегда пассивно перезагружать устаревшие, но немодифицированные буферы, то, похоже, это должно выполнить свою работу.
Однако последняя деталь - это когда vim замечает устаревший буфер. Это можно сделать принудительно с помощью
checktime
. Если у вас настроены события фокуса , мы можем запускатьсяchecktime
всякий раз, когда получим фокус, вот так:В этом ответе также есть некоторые интересные детали.
источник
Как упомянул @Matthew S здесь https://vi.stackexchange.com/a/462 , вы можете использовать:
источник