Как заставить vim открывать все файлы, соответствующие шаблону, на разных вкладках?
В данном рабочем каталоге, если я делаю
:tabe **/test*.py
vim
жалуется на E77: Too many file names
. Что делать, если я хочу, чтобы он открывал каждый соответствующий файл на отдельной вкладке? Должен быть способ сделать это, но я не могу его найти.
Ответы
Ответ 1
Вы можете использовать список args
и argdo
следующим образом:
:args **/test*.py
:argdo tabe %
Однако событие синтаксиса отключается с помощью argdo
(чтобы ускорить нормальный вариант использования), поэтому файлы сначала будут загружены без синтаксиса. Вы можете следить за ним с помощью :syntax on
, чтобы заставить синтаксическое событие для всех загруженных буферов. Сжатый в одну строку (нужно обернуть argdo
в execute
, чтобы он не поглощал следующие |
):
:args **/test*.py | execute 'argdo tabe %' | syntax on
В качестве альтернативы вы можете открыть vim из командной строки с помощью:
vim -p **/test*.py
Но это будет максимальным на 10 вкладках.
Ответ 2
Вы можете использовать следующее:
:next **/test*.py
Он открывает все файлы.
Ответ 3
Чтобы отобразить его
nmap <c-d> :args **/*.tpl<bar>execute 'argdo tabe %'<bar>syntax on<cr>
Но все же он отображает список файлов, вам нужно нажать несколько раз (в зависимости от количества файлов).
Ответ 4
Эта функциональность может быть включена как команда в ваш файл .vimrc
:
"open all files in seperate tabs
command -nargs=1 OpenAll call <SID>openAll(<f-args>)
function! s:openAll(dir)
execute 'args ' . a:dir
silent argdo tabe %
syntax on
endfunction
С помощью этой функции :OpenAll **/*.py
из vim быстро откроет все файлы на новых вкладках