Guia Próxima: g t
Guia anterior: g T
Guia numerada: nnn g t
No gnome-terminal, eu posso apenas pressionar Alt + ( 1 , 2 , 3 , etc .) para mudar para abas específicas. Eu também posso usar Ctrl + ( PgUp / PgDn ) para percorrer as abas (reconhecidamente menos conveniente, mas pode ser remapeada).
Se eu quiser usar as guias vim em vez das guias do terminal gnome, digitar :tabn
e :tabp
é bastante complicado. Eu poderia mapeá-los para atalhos de teclado, mas isso ainda é muito menos conveniente do que saltar diretamente para a guia 4 com Alt + 4 .
Existe uma maneira mais rápida de alternar entre as guias no vim?
Guia Próxima: g t
Guia anterior: g T
Guia numerada: nnn g t
Por que não fazer uso de seu líder (meu líder é mapeado para Espaço ):
" 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>
Você pode usar as configurações abaixo para alternar entre a guia atual e a última ativa (aqui ela é mapeada para Ctrl + L , ou seja, <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>
Esta é a maneira mais fácil que encontrei de alternar entre as guias de maneira mais rápida e simples.
Adicione as próximas linhas ao seu .vimrc e divirta-se, mais truques sobre as guias do vim aqui .
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
Agora você pode usar Ctrl ← para ir para a esquerda e Ctrl → para ir para a direita.
Ou apenas use: 1gt para ir para a aba um, e 2gt para a aba dois, e 3gt para ir ao tab 3, etc ... agora você tem a idéia.
Como estou usando um Mac e não estou usando o MacVim (mas o vim simples dentro de um terminal) tive algumas dificuldades com as combinações de teclas não serem enviadas para o terminal.
A maneira mais compatível (e mais confortável para mim) de trocar de abas rapidamente vem do site Vim Wikia .
Coloque no seu arquivo .vimrc
:
nnoremap H gT
nnoremap L gt
Agora, Shift-h
(capital H) e Shift-l
(capital L) alternarão rapidamente entre as guias e seguirão a convenção de que h
e l
correspondem à esquerda e à direita no vim em um teclado qwerty normal .
(Infelizmente) o vim também usa Ctrl PgDn / PgUp para percorrer as abas. Você precisará usar map
para mapear tabn
/ tabp
para algo utilizável.
Se você estiver usando o gvim ou algo similar (ou seja, algo fora do terminal), poderá imitar o comportamento gnome-terminal
com o qual você descreve:
" 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>
Então, alt-1
pula para a primeira guia, etc. Mas alt-9
pula para a última guia (como no Chrome).
Você pode querer quebrar isso em if has("gui_running")
(embora isso não pareça funcionar com Neovim), ou colocar isso em .gvimrc
.
Aqui estão alguns mapeamentos fáceis para o seu .vimrc:
nnoremap <C-h> :tabprev
nnoremap <C-l> :tabnext
Prós:
Adicione-os a .vimrc para ativar as teclas de atalho da navegação de guias:
<ctrl-l>
toggle between 2 most recent tabs;
<ctrl-j/k>
goto the last/next tab;
<ctrl-t>
open a new tab.
" 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>
Tags gnome-terminal vim tabs linux terminal