J'ouvre plusieurs fichiers dans Vim en exécutant, par exemple,
vim a/*.php
qui ouvre 23 fichiers.
Je fais ensuite mon montage et exécute les opérations suivantes deux fois
:q
qui ferme tous mes tampons.
Comment pouvez-vous fermer un seul tampon dans Vim?
vim -o a/*.php
(ou-O
pour utiliser des fenêtres verticales) et éviter la navigation dans le tampon - c'est une excellente méthode pour seulement quelques fichiers, mais avec 23 fichiers, ils n'auront que quelques lignes / colonnes chaque.Réponses:
Un mot d'avertissement: "le w in bw ne signifie pas écrire mais effacer!"
Plus de manuels:
: bd
Si vous savez ce que vous faites, vous pouvez également utiliser: bw
: bw
la source
:bw
si "vous savez ce que vous faites", ce que je ne sais pas, donc je suppose que je vais utiliser:bd
.:bd
) ferme également l'onglet. Ce que vous voulez sans doute est:bd n .. [m]
ou:n,mbd
pour les numéros spécifiques ou plage de numéros à proximité, que vous pouvez faire sans regarder les tamponsw
est l'abréviation dewrite
commande selon le manuel Vim, il n'y a en outre aucune mention de "wipeout". La description de la commande (help write
) commence par "Ecrire tout le tampon dans le fichier actuel".w
dans labw
commande signifie effacer, il ne parle pas de law
commande. Il a mis cet avertissement là pour que les gens ne pensent pas que labw
commande signifiait écriture tampon (ce qui ne signifie pas effacement du tampon.)Si cela n'est pas rendu évident par les réponses précédentes:
: bd fermera le tampon courant. Si vous ne voulez pas récupérer la liste des tampons.
la source
:bd
ferme uniquement le tampon alors que (quoi que cela signifie) alors que:bw
va également effacer toutes les variables et l'élimine VRAIMENT duls
tampon.Vérifiez votre identifiant de tampon à l'aide de: tampons
vous verrez une liste de tampons comme
si vous voulez supprimer b.php du tampon
si vous souhaitez supprimer / fermer tous les tampons
la source
Plutôt que de parcourir la sortie de la commande: ls et de supprimer (décharger, effacer ..) un tampon en spécifiant son numéro, je trouve que l'utilisation des noms de fichiers est souvent plus efficace.
Par exemple, après avoir ouvert quelques fichiers .txt pour rafraîchir mes souvenirs d'un point précis .. copiez et collez quelques lignes de texte à utiliser comme modèle de tri .. etc. Je taperais ce qui suit:
Notez que la chaîne correspondante ne doit pas nécessairement se trouver au début du nom de fichier.
Ce qui précède affiche la liste des noms de fichiers qui correspondent à 'txt' en bas de l'écran et conserve la commande: bd que j'ai tapée initialement intacte, prête à être complétée.
Voici un exemple:
Je pourrais revenir en arrière sur le bit 'txt' et taper le nom du fichier que je souhaite supprimer, mais là où cela devient vraiment pratique, c'est que je n'ai pas à le faire: si j'appuie sur la touche Tab une deuxième fois, Vim termine automatiquement ma commande avec le premier match:
Si je veux me débarrasser de ce tampon particulier, je dois juste appuyer sur Entrée.
Et si le tampon que je veux supprimer se trouve être la deuxième (troisième .. etc.) correspondance, je n'ai qu'à appuyer sur la touche Tab pour que ma commande: bd fasse défiler la liste des correspondances.
Naturellement, cette méthode peut également être utilisée pour basculer vers un tampon donné via des commandes telles que: b ..: sb .. etc.
Cette approche est particulièrement utile lorsque l'option Vim `` cachée '' est définie, car la liste des tampons peut rapidement devenir assez grande, couvrant plusieurs écrans et rendant difficile de repérer le tampon particulier que je recherche.
Pour tirer le meilleur parti de cette fonctionnalité, il est probablement préférable de lire le fichier d'aide Vim suivant et de modifier le comportement de la complétion de la ligne de commande Tab en conséquence afin qu'il convienne le mieux à votre flux de travail:
Le comportement que j'ai décrit ci-dessus résulte du paramètre suivant, que j'ai choisi par souci de cohérence afin d'émuler l'achèvement de bash:
Contrairement à l'utilisation de numéros de tampon, le mérite de cette approche est que je me souviens généralement d'au moins une partie d'un nom de fichier donné me permettant de cibler directement le tampon plutôt que d'avoir à rechercher d'abord son numéro via la commande: ls.
la source
Utilisation:
:ls
- pour lister les tampons:bd#n
- pour fermer le tampon où #n est le numéro du tampon (utilisezls
pour l'obtenir)Exemples:
pour supprimer le tampon 2:
la source
Vous pouvez également mapper les touches de fonction suivantes et précédentes, ce qui permet de parcourir les tampons en un clin d'œil
de mon vimrc
la source
Que diriez-vous
De cette façon, vous pouvez éditer un seul fichier sur votre gauche et parcourir tout le répertoire sur votre droite ... Juste une pensée, pas la solution ...
la source
[EDIT: c'était une suggestion stupide d'une époque où je ne connaissais pas assez bien Vim. Veuillez ne pas utiliser d'onglets au lieu de tampons; les onglets sont les "dispositions de fenêtre" de Vim]
Peut-être passer à l'aide d'onglets?
vim -p a/*.php
ouvre les mêmes fichiers dans les ongletsgt
etgT
basculer les onglets d'avant en arrière:q
ferme uniquement l'onglet actuel:qa
ferme tout et sort:tabo
ferme tout sauf l'onglet actuella source
wildmenu
? Il est similaire à lustyjuggler (bien que plus simple) mais il est intégré (ce qui était bon pour moi, car lustyjuggler a besoin+ruby
, et le vim par défaut pour les navires ubuntu oneiric-ruby
).vim-nox
package d'Ubuntu prend en charge Ruby.Ceux qui utilisent un plugin ou un plugin de navigation arborescente, comme Buffergator ou NERDTree, devront basculer ces divisions avant de détruire le tampon actuel - sinon vous enverrez vos divisions dans wonkyville
J'utilise:
Où "
NERDTreeToggle
" dans cette liste équivaut à taper:NERDTreeToggle
. Vous pouvez modifier cette fonction pour l'intégrer à votre propre configuration.la source
:bdelete
ou:bwipeout
. Voir ma réponse .Fermer le tampon sans fermer la fenêtre
Si vous souhaitez fermer un tampon sans détruire la disposition de votre fenêtre (disposition actuelle basée sur des divisions), vous pouvez utiliser un plugin comme bbye . Sur cette base, vous pouvez simplement utiliser
Ou créez simplement une cartographie dans votre
.vimrc
pour un accès plus facile commeAvantage sur vim's: bdelete et: bwipeout
De la documentation du plugin :
: bdelete vs: bwipeout
De la documentation du plugin :
la source