Как заставить vim открывать все файлы, соответствующие шаблону, на разных вкладках? - PullRequest
19 голосов
/ 12 августа 2010

В данном рабочем каталоге, если я делаю

:tabe **/test*.py

vim жалуется с E77: Too many file names. Что если я захочу открыть каждый соответствующий файл на отдельной вкладке? Должен быть способ сделать это, но я не могу его найти.

Ответы [ 4 ]

31 голосов
/ 12 августа 2010

Вы можете использовать список 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 вкладках.

8 голосов
/ 24 апреля 2013

Вы можете использовать следующее:

:next **/test*.py

Открывает все файлы.

1 голос
/ 20 апреля 2013

Чтобы отобразить это

nmap <c-d> :args **/*.tpl<bar>execute 'argdo tabe %'<bar>syntax on<cr>

Но все равно он отображает список файлов, вы должны нажать несколько раз клавишу ввода (в зависимости от количества файлов).

0 голосов
/ 07 мая 2019

Эта функция может быть включена как команда в ваш .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, вы быстро откроете все файлы на новых вкладках

...