Comment puis-je conserver une liste de tampons par fenêtre dans Vim?


15

Je suis surpris de ne pas avoir pu trouver de réponse à cela, mais il me manque peut-être quelque chose d'évident: est-il possible de conserver une liste de tampons par fenêtre ? J'ai souvent environ 4 divisions, et chacune sert généralement un objectif spécifique: CSS dans un, JS dans un autre, HTML dans quelques autres, etc.

Ce que je recherche probablement, c'est un plugin qui accomplit cela. Dernièrement, j'utilise BufExplorer, qui a un paramètre vous permettant de conserver sa liste de tampons par onglet, mais pas par fenêtre.

J'aime vraiment la liste MRU de BufExplorer, mais je trouve ennuyeux qu'elle soit basée sur ma liste globale de tampons - ce que je veux, c'est un historique MRU par fenêtre.


Vous ne pouvez pas le trouver car il n'a pas encore été construit. La plupart des voisins les plus proches sont identifiés dans ce Q & A
New Alexandria

Réponses:


1

À mon humble avis, ce dont vous avez vraiment besoin, c'est d'un gestionnaire d'espace de travail.

vous pouvez en trouver un pour vim @ http://www.vim.org/scripts/script.php?script_id=1410

Il vous fournira les commandes suivantes:

:WsAddFile              Add a new file to the workspace.                  
:WsAddGroup             Add a new group to the workspace.                 
:WsClose                Close the workspace window.                       
:WsInsertFile           Insert a file.                                    
:WsInsertGroup  Insert a group.                                           
:WsOpen         Open a workspace and display it in a window.              
:WsRun          Run a command using the selected unquoted file names.     
:WsRunq         Run a command using the selected quoted file names.       
:WsSave         Save the workspace.                                       
:WsSessionOpen  Open the workspace and Vim session.                       
:WsSessionSave  Save the workspace and the Vim session.                   
:WsToggle               Open or Close the workspace window. 

J'ai une capture d'écran de travailler avec Workspace Manager avec plus de 4 fenêtres publiées sur mon fb , vous pouvez le voir là-bas (qui est public).

Ce n'est pas exactement une liste de tampons comme vous le vouliez, mais vous pouvez ouvrir des fichiers dans différentes fenêtres et dans plusieurs tampons dans la même fenêtre.

Dans le dernier cas, le gestionnaire d'espace de travail servira de liste de tampons. Comme vous pouvez le voir sur la capture d'écran, j'ai regroupé les fichiers en différents groupes.

C'est aussi proche que possible, AFIK.

Bonne journée.


0

Pourquoi chausse-pied ce niveau de gestion des fenêtres dans vim? J'utilise occasionnellement des fenêtres fractionnées - j'ai Ctrl-F mappé à une commande grep de style find-in-files qui apparaît dans une fenêtre divisée, et j'utilise aussi vimdiff à l'occasion.

Mais voulez-vous vraiment une gestion permanente des fenêtres dans vim? Le gestionnaire de connexions PuTTY et toutes sortes d'émulateurs de terminaux vous permettent de diviser les terminaux comme vous le souhaitez, puis d'exécuter des sessions vim distinctes dans chacun d'eux.


Pouvez-vous partager des registres entre des instances vim? C'est toujours ma principale raison de ne pas vouloir que plusieurs instances de vim soient exécutées: je ne peux pas yankde l'une putà l'autre.
brianmearns

0

ouvrez NERDTree sur la gauche. >

J'ai plusieurs tampons ouverts (un seul visible dans la vue principale ... appelez-le "tampon 1")

Je vais maintenant dans NERDTree et sélectionne un autre fichier que je veux juste regarder très rapidement ou copier quelque chose. J'ouvre donc ce fichier depuis NERDTree et buffer1 est correctement caché et je regarde maintenant le buffer que je viens d'ouvrir (appelez-le buffer 2)

Je veux maintenant quitter complètement ce tampon 2 et revenir à l'édition du tampon 1, mais quand je le fais: q sur le tampon 2, je finis par regarder un seul grand NERDTree et je dois réafficher buffer1. ... [montrer le reste de la citation]

Je n'utilise pas Nerdtree, mais il semble que vous devriez taper Ctrl- ^ (probablement Ctrl + la touche 6) pour revenir à buffer1.


0

Je ne connais pas un tel plugin.

Une façon rapide d'ouvrir un tampon d'un fichier spécifique est d'utiliser la commande: FufBuffer de FuzzyFinder. Il ouvrira une liste de tous les tampons ouverts (à l'exception de celui dans votre fenêtre actuelle) pour un accès facile. J'ai le mien lié, fn. Cela me permettrait, par exemple, de voir rapidement tous les fichiers css avec, fncss ou tous les fichiers js avec, fnjs. FuzzyFinder est idéal pour accéder au fichier / tampon / répertoire / etc que vous souhaitez avec un minimum d'effort (pas seulement dans ce cas d'utilisation particulier).

Cependant, je soupçonne que vous cherchez quelque chose qui vous permettra d'utiliser: bn et: bN (ou tout ce que vous avez mappé, je ne me souviens pas si ctrl-n / p sont par défaut ou mon personnalisé) pour basculer entre vos tampons de un type de fichier spécifique.

Peut-être, vous pourriez créer un plugin qui vous donne des commandes pour permettre de passer aux tampons précédents / suivants du même type que le fichier du tampon actuel dans la fenêtre actuelle.


BTW, je pense que la gestion de ces listes de tampons séparées serait plus une douleur qu'un soulagement.
Hannes

-1

Ce n'est pas une réponse totale, mais il semble que vim conserve des tampons # et% séparés pour chaque fenêtre. Vous pouvez donc alterner rapidement entre deux fichiers dans une fenêtre (en utilisant CTRL- ^) et deux fichiers différents dans l'autre fenêtre. La liste des tampons est toujours tous les tampons que vous avez ajoutés.


C'est vraiment un commentaire mais je ne peux pas encore commenter donc je poste une réponse qui est rejetée parce qu'elle ne répond pas à la question. Allez comprendre.
mondaugen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.