104

В gnome-терминале я могу просто нажать Alt + (1, 2, 3 и т.д.), Чтобы переключиться на определенные вкладки. Я также могу использовать Ctrl + (PgUp / PgDn) для циклического переключения между вкладками (правда, менее удобно, но его можно переназначить).

Если я хочу использовать вкладки vim вместо вкладок терминала gnome, набрать :tabn и :tabp довольно громоздко. Я мог бы сопоставить их с сочетаниями клавиш, но это все же намного менее удобно, чем переход непосредственно к вкладке 4 с помощью Alt + 4.

Есть ли более быстрый способ переключения между вкладками в vim?

7 ответов7

179

Следующая вкладка: г т

Предыдущая вкладка: g T

Нумерованная вкладка: nnn g t

35

Почему бы не использовать своего лидера (мой лидер отображается в Space):

" Go to tab by number
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt
noremap <leader>0 :tablast<cr>

Вы можете использовать настройки ниже для переключения между текущей и последней активной вкладкой (здесь она отображается на Ctrl+L, то есть, <c-l>):

" Go to last active tab

au TabLeave * let g:lasttab = tabpagenr()
nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>
16

Это самый простой способ, который я нашел, чтобы переключаться между вкладками быстрее и проще.
Добавьте следующие строки в ваш .vimrc и наслаждайтесь им, больше трюков о вкладках vim здесь.

nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

Теперь вы можете использовать Ctrl для перехода влево и Ctrl для перехода вправо.

Или просто используйте:
1г, чтобы перейти на первую вкладку,
2gt, чтобы перейти на вкладку два,
3gt, чтобы перейти к вкладке три, и т.д ... теперь у вас есть идея.

10

Поскольку я работаю на Mac и не использую MacVim (но обычный vim в терминале), у меня возникли некоторые трудности с передачей комбинаций клавиш в терминал.

Самый совместимый (и для меня самый удобный) способ быстро переключаться между вкладками - это сайт Vim Wikia.

Поместите в свой файл .vimrc :

nnoremap H gT
nnoremap L gt

Теперь Shift-h (заглавная H) и Shift-l (заглавная L) быстро переключат вас между вкладками и следуют соглашению, что h и l соответствуют слева и справа в vim на обычной qwerty-клавиатуре.

1

(К сожалению) vim также использует Ctrl PgDn/PgUp для переключения между вкладками. Вам нужно будет использовать map чтобы сопоставить tabn/tabp с чем-то пригодным для использования.

0

Добавьте их в .vimrc для включения горячих клавиш навигации по вкладкам:

<ctrl-l> переключение между двумя последними вкладками;

<ctrl-j/k> перейти на последнюю / следующую вкладку;

<ctrl-t> открыть новую вкладку.

" tab navigation: Alt or Ctrl+Shift may not work in terminal: " http://vim.wikia.com/wiki/Alternative_tab_navigation " Tab navigation like Firefox: only 'open new tab' works in terminal nnoremap <C-t> :tabnew<CR> inoremap <C-t> <Esc>:tabnew<CR> " move to the previous/next tabpage. nnoremap <C-j> gT nnoremap <C-k> gt " Go to last active tab au TabLeave * let g:lasttab = tabpagenr() nnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr> vnoremap <silent> <c-l> :exe "tabn ".g:lasttab<cr>

0

Если вы используете gvim или аналогичный (то есть что-то вне терминала), вы можете имитировать поведение gnome-terminal вы описываете:

" Map alt-x keys to jump to a tab
for i in range(1, 8)
  execute "nmap \<M-" . i . "> " . i . "gt"
endfor
nmap <M-9> :tablast<CR>

Таким образом, alt-1 переходит на первую вкладку и т.д. Но alt-9 переходит на последнюю вкладку (как в Chrome).

Возможно, вы захотите обернуть это, if has("gui_running") (хотя, похоже, это не работает с Neovim), или поместить это в .gvimrc .

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