Ответы:
Прочтите документацию bufdo
, он должен делать то, что вы хотите.
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
Откуда :help autoread
:
Если было обнаружено, что файл был изменен за пределами Vim, и он не был изменен внутри Vim, автоматически прочитайте его снова. Когда файл был удален, этого не происходит.
Если, как и я, вы просто хотите всегда пассивно перезагружать устаревшие, но немодифицированные буферы, то, похоже, это должно выполнить свою работу.
Однако последняя деталь - это когда vim замечает устаревший буфер. Это можно сделать принудительно с помощью checktime
. Если у вас настроены события фокуса , мы можем запускаться checktime
всякий раз, когда получим фокус, вот так:
set autoread
autocmd FocusGained * checktime
В этом ответе также есть некоторые интересные детали.
Как упомянул @Matthew S здесь https://vi.stackexchange.com/a/462 , вы можете использовать:
:set noconfirm
:bufdo !e
:set confirm