Подтвердить что ты не робот

Как заставить vim открывать все файлы, соответствующие шаблону, на разных вкладках?

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

:tabe **/test*.py

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

4b9b3361

Ответ 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 быстро откроет все файлы на новых вкладках