Question En vim, comment puis-je basculer rapidement entre les onglets?


Dans gnome-terminal, je peux simplement appuyer sur Alt + (1, 2, 3, etc.) pour passer à des onglets spécifiques. Je peux aussi utiliser Ctrl + (PgUp / PgDn) pour parcourir les onglets (certes moins pratique, mais qui peut être remappé).

Si je veux utiliser les onglets vim au lieu des onglets gnome-terminal, tapez :tabn et :tabp est assez lourd. Je pourrais les associer à des raccourcis clavier, mais cela reste beaucoup moins pratique que de passer directement à l’onglet 4 avec Alt + 4.

Existe-t-il un moyen plus rapide de basculer entre les onglets de vim?


92
2018-04-11 01:06


origine




Réponses:


Onglet suivant: gt

Onglet précédent: gT

Onglet numéroté: nnngt


155
2018-04-11 02:19



Je sais que je pourrais taper nnn  g  t, mais je veux le faire rapidement, c'est à dire. Alt + nnn ou Ctrl + nnn. Mais Alt + n est déjà pris par gnome-terminal, et lié à Ctrl + n ne semble pas avoir d'effet. - Matthew
Qu'en est-il des touches de fonction de mappage pour nnn  g  t? Par exemple., :map <F2> 2gt. Il y a le problème que <F1> est souvent mappé par GNOME sur sa fonction d'aide. Ou vous pouvez choisir une clé que vous n'utilisez pas souvent en mode normal, dites la virgule et mappez-la comme ceci: :map , gt. alors 1, vous amène à l'onglet 1, 2, à l'onglet 2, et ainsi de suite. - garyjohn
J'ai trouvé très pratique d'utiliser '<' et '>' - Igor Stoppa
Faites défiler vers le bas pour une meilleure réponse. - The Vivandiere


Pourquoi ne pas utiliser votre chef (mon chef est associé à Espace):

" 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>

Vous pouvez utiliser les paramètres ci-dessous pour basculer entre l'onglet actuel et le dernier actif (ici, il est mappé sur Ctrl+L, c'est à dire., <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>

32
2017-11-12 20:59



Vous avez besoin au TabLeave * let g:lasttab = tabpagenr() pour c-l travailler: stackoverflow.com/questions/2119754/ - Ciro Santilli 新疆改造中心 六四事件 法轮功
J'ajouterais <leader>h/l pour gT et gt - Brenden


C'est le moyen le plus simple que j'ai trouvé, pour basculer entre les onglets plus rapidement et plus facilement.
Ajoutez les lignes suivantes à votre fichier .vimrc et profitez-en, plus d'astuces sur les onglets vim ici.

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

Maintenant, vous pouvez utiliser Ctrl   aller à gauche et Ctrl   pour aller droit

Ou utilisez simplement:
1gt pour aller à l'onglet un,
2gt pour aller à l'onglet deux,
3gt pour aller à l'onglet trois, etc ... maintenant vous avez l'idée.


12
2018-03-03 14:21



Je pense que c'est la meilleure réponse ici. Très pratique d'avoir. Je viens de désactiver les raccourcis système dans OS X pour les rendre indépendants du système. - Léo Léopold Hertz 준영
Utilisez les touches fléchées pour vous ralentir. Je les ai désactivé - Ask and Learn
Yup ... Meilleure réponse! - The Vivandiere
Malheureusement, "Ctrl" m'a donné des problèmes avec vmplayer, j'ai donc changé pour les touches "Backspace" et "Enter". - Boris Däppen
Utilisateurs Mac: vous devrez peut-être désactiver les raccourcis clavier d'espaces de contrôle de mission par défaut: stackoverflow.com/questions/15719135/... - toszter


Comme je le suis sur un Mac et que je n'utilise pas MacVim (mais dans un terminal), j'ai eu des difficultés avec les combinaisons de touches qui ne sont pas envoyées au terminal.

Le moyen le plus compatible (et le plus confortable pour moi) de changer d’onglet rapidement Vim Wikia site.

Placez dans votre .vimrc fichier:

nnoremap H gT
nnoremap L gt

À présent Shift-h (H majuscule) et Shift-l (majuscule L) vous changera rapidement entre les onglets, et suit la convention h et l correspondent à gauche et à droite dans vim sur un clavier qwerty régulier.


9
2017-07-03 10:59





(Malheureusement) vim utilise aussi CtrlPgDn/PgUp faire défiler les onglets. Vous devrez utiliser map cartographier tabn/tabp à quelque chose utilisable.


1
2018-04-11 01:25





Si vous utilisez gvim ou similaire (c'est-à-dire quelque chose en dehors du terminal), vous pouvez imiter le gnome-terminal comportement que vous décrivez avec:

" 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>

Alors alt-1 saute au premier onglet, etc. Mais alt-9 saute au dernier onglet (comme dans Chrome).

Vous pourriez vouloir envelopper ceci dans if has("gui_running") (bien que cela ne semble pas fonctionner avec Neovim), ou mettre cela dans .gvimrc.


0
2017-10-02 15:32





Voici quelques mappages faciles pour votre fichier .vimrc:

nnoremap <C-h> :tabprev
nnoremap <C-l> :tabnext

Avantages:

  • Pas de déplacement depuis la rangée de départ (je permute ctrl et majuscule)
  • Réutilise les touches "gauche" et "droite"
  • Ressemble à la commutation des onglets du navigateur

0
2018-01-12 23:17