1

Я часто переключаюсь назад и вперед между несколькими файлами одновременно в vi и всегда добавляю больше с помощью tabe . Есть ли способ добавить более одной вкладки одновременно, сохраняя все открытые вкладки?

Я пробовал очевидную tabe *.php но, очевидно, tabe принимает только один файл, потому что это приводит к ошибке too many arguments . Я также попытался добавить файлы к аргументам и затем открыть аргументы с помощью tab all согласно этому ответу, но это закрывает мои открытые вкладки (вероятно, потому что я перезаписываю аргументы). Я думаю, что я пытаюсь сделать, это добавить имена файлов к аргументам. Кто-нибудь знает, как это сделать?

4 ответа4

1

Если вы не хотите связываться с аргументами, определите функцию

fu! OpenTabs( pattern )
    let list = split(expand(a:pattern), '\n')
    call map(list, "'tabe ' . v:val")
    for c in list | exe c | endfor
endf

Например, чтобы отредактировать все ваши файлы rc во вкладках:

:call OpenTabs( '.*rc' )

Кроме того, вы можете использовать argadd чтобы ваш текущий список не был заменен.

1
  1. Добавьте все ваши *.php файлы в список аргументов:

    :args *.php
    
  2. Переместите каждый элемент в списке аргументов на новую вкладку:

    :argdo tabe
    

Но вам следует еще раз подумать об использовании вкладок: буферы - это гораздо более простая метафора.

0

Используя плагин CtrlP, вы можете выбрать несколько файлов, соответствующих конкретному запросу.

После ввода поиска используйте <C-j> и <C-k> (или стрелки) для перемещения в списке результатов и <C-z> для выбора / отмены выбора файла. Затем используйте <C-t> чтобы открыть свой выбор на вкладках.

0

Я бы повторил то, что сказал @romainl: вместо этого вы должны попытаться привыкнуть к буферам (я находился в том же положении, что и вы около шести месяцев назад, а сейчас почти никогда не использую вкладки).

Это говорит:

:tab ball

откроет все существующие буферы (файлы, которые вы редактируете) в отдельных вкладках. Таким образом, вы можете использовать:

:e *.php
:tab ball

Смотрите :h ball и :h tab в vim.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .