Как запустить команду над несколькими буферами/вкладками для удаления конечных пробелов?
У меня есть команда, чтобы убрать лишние пробелы в моем коде в vim:
" to tidy excess whitespace
map <leader>1 :execute ':%s#\s\+$##g'<CR>
Мой вопрос в том, что если у меня открыто 10 вкладок или буферов, как я могу применить эту команду ко всем из них, а не просто идти к каждому из них и применять эту команду.
Ответы
Ответ 1
Посмотрите на подсказку vim по использованию bufdo, windo и tabdo.
Предполагая, что все ваши буферы находятся в списке буферов, ваша карта может быть такой же простой, как
" to tidy excess whitespace
map <leader>1 :execute ':bufdo! %s#\s\+$##g'<CR>
Ответ 2
Не проверено, но это должно сделать это:
:tabdo %s/SEARCH/REPLACE/ge | update
Это заменяет SEARCH
на всех вкладках с помощью REPLACE
и
записывает файл, если он изменен командой без
показывая сообщение об ошибке, если ничего не найдено.
Если вы хотите, чтобы вас спрашивали перед каждой заменой,
добавьте 'c' к флагам.
См. также :help :argdo
, :help :windo
и :help :bufdo
.