У меня есть несколько файлов, открытых в vim, в нескольких окнах. Есть ли команда вроде: e, которая перезагрузит буферы для всех файлов, которые я открыл? Мне нужно это, потому что я когда-нибудь изменяю некоторые файлы с другим редактором, пока они также открыты в vim.
Как вы перезагружаете все окна vim сразу?
Ответ 1
Команда: windo делает для Windows то, что: bufdo делает для буферов. То есть:
:windo e
должен циклически перемещаться по всем видимым окнам (т.е. не к окнам на других вкладках, если они есть) и выполнять команду ': e'. Точно так же:
:bufdo e
будет циклически перебирать все буферы в списке буферов (т.е. нет "скрытых" буферов) и выполнять ту же команду.
Обратите внимание, что у вас могут быть буферы в списке буферов, которые в настоящее время не отображаются в любом окне. Так что использовать ": windo e" или ": bufdo e" зависит от того, что вы хотите.
Соответствующая помощь находится здесь: http://vimdoc.sourceforge.net/htmldoc/windows.html#list-repeat
Ответ 2
Vim автоматически перезагружает буферы, которые были изменены извне (и не имеют несохраненных изменений), если вы установите параметр 'autoread.
Ответ 3
Что насчет
:bufdo e