Question Comment fermer le tampon sans fermer la fenêtre?


J'ouvre habituellement quelques fenêtres et garde quelques tampons ouverts. Depuis que mon MO en exploration de tampon consiste à utiliser des raccourcis rapides pour :bn et :bp, Je veux fermer les tampons inutiles pour distraire mon tampon de navigation.

Mais la douleur est, émettant :bd et :bw Cela se traduit également par la fermeture de la fenêtre au cas où j'en aurais plusieurs ouvertes. Comment fermer (supprimer) un tampon et laisser les fenêtres intactes?

Solution inspirée de la réponse de @ peth

:command! BW :bn|:bd#

C'est simple. Ne fonctionne pas bien avec un seul tampon ouvert (mon comportement diffère selon que j'ouvre les fichiers), mais ce n'est pas un gros problème. :)


20
2018-05-27 06:34


origine




Réponses:


Cela peut être pénible, cette question est soulevée à plusieurs reprises #vim (Freenode) aussi.

Certaines personnes recommandent de ne pas supprimer les tampons et de changer avec :b partial<Tab> au lieu de :bn, qui fonctionne, mais ce n'est pas ce que vous demandez.

La meilleure façon de le faire est de passer à un autre tampon, puis :bd#, que vous pourriez cartographier, bien sûr.

Voir également Supprimer un tampon sans fermer la fenêtre sur le wikia Vim.


10
2018-05-27 09:55



Le script a l'air d'une solution que je suis prêt à accepter s'il n'y a pas de manière officielle. :) - progo


J'ai un peu gâché cela et j'ai finalement trouvé:

:bp | sp | bn | bd

Voici la version copy / paste pour le mappage de clés:

:bp<bar>sp<bar>bn<bar>bd<CR>

Ou une commande pour votre fichier .vimrc (appel avec: Bd):

commande Bd bp | sp | bn | bd

Je l'ai assez bien testé et cela fonctionne régulièrement dans diverses conditions. Lorsqu'il est utilisé sur le dernier tampon, il vous laissera un nouveau tampon vierge.


19
2017-12-21 05:11



Je perds mon partage si je ferme un tampon ouvert dans les deux fenêtres, comme le dernier tampon. +1 pour être plus simple que les scripts wikia à bd sans fermer la fenêtre. - Leif Carlsen
J'utilisais vim-bbye mais votre réponse est beaucoup plus simple et ne dépend d'aucun script. Je vous remercie. - Andrew-Dufresne


Une fenêtre est une fenêtre dans un tampon. (Voir :help window.) Vous ne pouvez pas avoir de fenêtre sans tampon associé. Vous pouvez utiliser une commande telle que :enew pour remplacer le contenu de la fenêtre en cours par un tampon vide, cependant.


4
2018-05-27 06:57



Je m'attendais à ce que, après une suppression de tampon, vim puisse basculer vers un autre tampon ou en ouvrir un nouveau si nécessaire. - progo
@progo, cela nécessiterait un script, c’est-à-dire un plugin, ou un simple mapping. - Clint Pachl


la bufkill.vim Le plugin fonctionne également. J'aime l'utiliser avec vim-command-w pour plus de fonctionnalité et de finesse (comme s'il fermait un split s'il s'agissait du dernier tampon ou du dernier vim s'il s'agit du dernier tampon / split).


2
2017-08-30 21:17





Voici une autre solution:

map <C-W>o <C-W>n<C-W><C-W><C-W>c

En tapant Ctrl + W alors o créera tranquillement une nouvelle fenêtre et fermera l’ancienne fenêtre. Le curseur est laissé dans la nouvelle fenêtre. Il y a un certain nombre d'effets positifs:

  1. Vos dimensions de fractionnement d'origine sont préservées.
  2. Un tampon vide est chargé dans le nouveau fractionnement.
  3. Le tampon d'origine est toujours chargé, utilisez: buffers pour le lister.
  4. Ctrl + o déplace le curseur à sa position d'origine dans l'ancien tampon si vous devez revenir en arrière.
  5. Fonctionne bien même si une seule fenêtre est chargée.

2
2017-09-15 20:11





Je pense que le problème est que la plupart des gens s'attendent à ce que vim buffer et window ne soient pas quelque chose.

Les gens ont tendance à penser à une fenêtre vim comme un processus autonome qui a sa propre liste de tampons, mais malheureusement ce n'est pas le cas. Une fenêtre vim n'est qu'une fenêtre d'affichage de ses tampons.
Par conséquent, beaucoup de problèmes surviennent, comme votre problème ou le problème que différentes fenêtres partagent la même liste de tampons. Vous ne pouvez donc pas modifier le tampon 1 dans la fenêtre A et laissez Window B ignorer le tampon 1 dans sa liste de tampons.

Ma solution consiste à ouvrir deux instances de vim, de sorte que vous puissiez avoir le type de fenêtre vim souhaité. Cela fonctionne mieux sur le carrelage WM.


0
2018-05-01 11:43





En général, j'ouvre simplement le menu sur n'importe quel tampon. Cela ouvrira le menu sur le volet gauche et le curseur y sera actif. Donc, je reviens au tampon actif et supprime le tampon.

Après cela, je peux ouvrir un autre fichier à partir du menu.

Mes étapes sont:

:Vex

ctrl + w + w

:bd

0
2018-03-27 13:42