Comment puis-je modifier la position / l'ordre de mon onglet actuel dans Vim
? Par exemple, si je veux repositionner mon onglet actuel pour qu'il soit le premier onglet?
200
Vous pouvez déplacer un onglet en :tabm
utilisant des arguments absolus relatifs ou à index zéro.
absolu:
:tabm i
relatif:
:tabm +i
:tabm -i
C'est une fonctionnalité relativement nouvelle. Donc, si cela ne fonctionne pas, essayez de mettre à jour votre vim.
:tabm
accepte les arguments relatifs dans vim 7.3.Voulez-vous dire déplacer l'onglet actuel? Cela fonctionne en utilisant tabmove.
J'ai deux raccourcis clavier qui déplacent mon onglet actuel vers la gauche ou vers la droite. Très utile!
EDIT: Voici ma macro VIM. Je ne suis pas un gros codeur ViM , alors peut-être que cela pourrait être mieux, mais c'est comme ça que ça fonctionne pour moi:
Après cela, vous pouvez lier des clés, par exemple comme ceci dans votre
.vimrc
:Vous pouvez maintenant déplacer votre onglet actuel en appuyant sur F9 ou F10.
la source
Je cherchais la même chose et après quelques articles, j'ai trouvé un moyen plus simple qu'une fonction:
Le tabpagenr () retourne la position de l' onglet réelle et tabmove utilise des index.
J'ai mappé la droite sur Ctrl + L et la gauche sur Ctrl + H:
la source
:execute "tabmove" tabpagenr() + 1 <CR>
pour me déplacer vers la droite. Pour MacVim 8.0.1420 (144) .Déplacer l'onglet actuel vers la n e position
Où
n
est un nombre indiquant la position (à partir de zéro)Déplacer les onglets vers la gauche / droite
Je pense qu'une meilleure solution consiste à déplacer l'onglet vers la gauche ou la droite vers sa position actuelle au lieu de déterminer la valeur numérique de la nouvelle position dans laquelle vous le souhaitez.
Avec les keymaps ci-dessus, vous pourrez déplacer l'onglet actuel:
la source
+tabmove
ettabmove+
? La position est-elle importante?En plus des suggestions fines dans d'autres réponses, vous pouvez également simplement faire glisser les onglets avec la souris pour les déplacer, si la prise en charge de la souris est activée.
Ceci est activé par défaut dans MacVim et d'autres implémentations de GUI vim, que ce soit en utilisant les onglets de widget GUI ou les onglets de style de terminal en mode GUI.
Il fonctionne également en mode pur tty Vim, si vous avez
set mouse=a
et avez un terminal approprié (xterm et la plupart des émulateurs de celui-ci, tels que gnome-terminal, Terminal.app, iTerm2 et PuTTY / KiTTY, pour nommer une vue). Notez que les clics de souris au-delà de la colonne 222 nécessitent égalementset ttymouse=sgr
; voir Dans Vim, pourquoi ma souris ne fonctionne-t-elle pas au-delà de la 220e colonne? pour le fond à ce sujet.J'ai écrit un plugin appelé vim-tabber qui fournit des fonctionnalités supplémentaires pour permuter les onglets, les déplacer et ajouter aux capacités des commandes de manipulation des onglets intégrées, tout en restant largement compatible avec les commandes intégrées. Même si vous choisissez de ne pas utiliser le plugin, le README contient des informations générales sur l'utilisation des onglets.
la source
Pour une raison quelconque, la réponse de la fonction a cessé de fonctionner pour moi. Je soupçonne un conflit avec vim-ctrlspace . Quoi qu'il en soit, les calculs dans la réponse de la fonction ne sont pas nécessaires, car Vim peut déplacer les onglets vers la gauche et la droite avec des fonctions intégrées. Nous avons juste à gérer le boîtier d'emballage , car Vim n'est pas convivial.
la source
-tabm
et+tabm
dans mon vim 7.4 ne déplace pas correctement les onglets. De plus, my:help tabm
ne répertorie pas cela comme une syntaxe valide. J'ai donc remplacé le dernierelse execute ...endif
enelseif a:direction == 1 execute "tabmove" s:current_tab else execute "tabmove" s:current_tab - 2 endif
utilisant la réponse de Pablotabmove
et le signe-
/+
dans laexecute
ligne.Voici ma macro, en utilisant les arguments relatifs de la réponse de @ maybeshewill:
Il gère le boîtier d'emballage.
la source