Existe-t-il un moyen de prendre une fenêtre existante (fractionnée) et de la mettre dans un nouvel onglet?
Existe-t-il un moyen de prendre une fenêtre existante (fractionnée) et de la mettre dans un nouvel onglet?
Réponses:
En plus de l' :tabedit
approche suggérée précédemment , un moyen plus rapide de le faire est (en mode normal) d'appuyer sur Ctrl- W Shift- T. Ctrl-W est le préfixe général pour une grande variété de commandes de manipulation de fenêtres.
Voir:
:help Ctrl-W_T
:help Ctrl-W
help Ctrl-W_T
vous amène à l'entrée d'aide de Ctrl-W_t
(minuscules), cependant, plus bas dans la page se trouve l' Ctrl-W_T
entrée (avec un T majuscule), disant "Déplacer la fenêtre actuelle vers une nouvelle page à onglet ...."
:echo bufnr("")
et en utilisant ce numéro, vous pouvez diviser une fenêtre avec :sp #3
ou :sb 3
(en supposant que le nombre était 3). Vous pourrez peut-être proposer des mappages ou des fonctions pour simplifier cela.
:sb
fonctionnerait, mais avec les versions récentes de Vim (> = 7.3), vous pouvez également utiliser l'annulation persistante en définissant set undodir=/path/to/dir
où / chemin / vers / dir est un répertoire que vous créé à cet effet et ensuite set undofile
. Cela vous permettra de quitter vim, puis de redémarrer et de conserver l'état d'annulation / rétablissement.
Essayer
:tabedit %<CR>
C-w T
est un moyen plus rapide de faire la même chose
Cela déplace le tampon le plus récent dans un nouvel onglet et restaure le tampon précédent dans l'onglet actuel. J'utilise ceci après avoir glissé un nouveau fichier dans mon Gvim
:sbp |wincmd p| wincmd T
Vous pouvez le mapper comme ça sur Ctrl-Backspace
:nnoremap <C-BS> :sbp<bar>wincmd p<bar>wincmd T<CR>
il fonctionne particulièrement bien avec
:set switchbuf=usetab
J'utilise ceci qui vous donne deux fonctions qui peuvent être liées à une paire de raccourcis clavier ou de commandes, et qui fonctionne de manière assez intuitive. Je suis presque sûr qu'il offre un comportement encore plus convivial que par exemple Ctrl-W_T
.
Par exemple, lorsque plusieurs fenêtres sont ouvertes dans plusieurs onglets, l'utilisation de cette fonction vous permet de déplacer spécifiquement la fenêtre actuelle vers l'onglet suivant ou précédent, et si vous déplacez quelque chose avant le premier onglet ou après le dernier onglet, il se transforme dans un tout nouvel onglet.
Cela signifie que si vous avez 2 onglets, chacun ayant une seule fenêtre, déplacer la fenêtre du premier onglet vers la droite le combinera avec le deuxième onglet pour donner un seul onglet avec deux fenêtres. Je ne sais pas à quel point cette opération est compliquée à réaliser en utilisant des commandes traditionnelles.
Cela signifie qu'une seule paire de commandes de déplacement permet à la fois de déplacer les fenêtres autour des onglets, de diviser les fenêtres en onglets (en poussant une fenêtre vers la fin) et de joindre des onglets séparés dans des fenêtres à l'intérieur d'un seul onglet, à peu près tout vous pourriez éventuellement vouloir, à court de disposition positionnelle (qui est un sujet séparé et pour lequel les commandes Ctrl-W
+ intégrées Shift-HJKL
fonctionnent bien).