Открыть сразу несколько файлов в tab'ах в vim можно так:
~$ vim -p `find -type f -name '*.rb' -print0 | xargs -0 file -i | grep -v 'utf-8' | awk '{print $1}' | sed 's/://'`
(пример от Харитона, открываем в vim все ruby-файлы в кодировке, отличной от utf-8)
Здесь важен ключ -p: открыть файлы в табах.
Vim откроет столько буферов, сколько нашлось файлов, но не более tabpagemax
, по умолчанию 10. Изменить количество табов можно в ~/.vimrc
так:
set tabpagemax=15
При превышении tabpagemax
новые табы не создаются, но навигировать по файлам все равно можно командами :next
и :last
.
Переключаться между табами можно командами: :tabnext
, :tabprevious
, :tablast
, :tabfirst
. Можно замапить из на горячие клавиши. Можно пользоваться горячими клавишами <C-PgUp> and <C-PgDown>.
Ещё полезное:
:tabn[ew]
- открыть новый таб
:tabe[dit] [++opt] [+cmd] {file}
- открыть файл в новом табе (типа :edit
)
:tabf[ind] [++opt] [+cmd] {file}
- найти файл в path
и открыть в новом табе (типа :find
)
CTRL-W gf
- редактировать файл с именем, находящимся под курсором, в новом табе
CTRL-W gF
- редактировать файл с именем, находящимся под курсором, в новом табе. Отмотать на строку которая указана после имени файла
:tabc[lose][!]
- закрыть таб
:tabo[nly][!]
- закрыть все табы кроме активного
:tabn[ext]
(gt
, <C-PageDown>) - переключиться на следующий таб
:tabp[revious]
(:tabN[ext]
, gT
) - на предыдущий таб
:tabr[ewind]
(:tabfir[st]
) - на первый таб
:tabl[ast]
- на последний
:tabs
- список табов
:tabm[ove] [N]
- переместить текущий таб на место сразу за N-ым
:tabd[o] {cmd}
- выполнить команду на каждом из табов (:tabdo %s/foo/bar/g
)
Подробнее здесь - :help tabpage
Еще интересная фишка. Если переместить курсор на имя файла и нажать gf
(go-to-file), то откроется альтернативный буфер с содержимым указанного файла. Старый файл как-бы пропадет из поля зрения. Однако на него можно быстро переключиться командой C-^
, так же и обратно. Так удобно редактировать 2 файла одновременно.
По поводу полезных маппингов:
http://www.bygonesky.com/Programming/Settings/Vim/carlos.vim.html, смотреть начиная со 125-й строки.