J'ouvre plusieurs fichiers dans Vim, par exemple, en exécutant
vim a/*.php
qui ouvre 23 fichiers.
Je fais ensuite mon édition et lance le suivant deux fois
:q
qui ferme tous mes tampons.
Comment pouvez-vous fermer un seul tampon dans Vim?
n mot d'avertissement: "w ne signifie pas écrire mais wipeout!"
Plus de manuels:
: bd
Décharger le tampon [N] (par défaut: tampon actuel) et le supprimer de la liste des tampons. Si la mémoire tampon a été modifiée, cela échoue, sauf si [!] Est spécifié, auquel cas les modifications sont perdues. Le fichier reste inchangé.
Si vous savez ce que vous faites, vous pouvez également utiliser: bw
: pc
Comme |: bdelete |, mais efface vraiment le tampon.
Si cela n’est pas rendu évident par les réponses précédentes:
: bd fermera le tampon actuel. Si vous ne voulez pas attraper la liste des tampons.
Vérifiez votre identifiant de tampon avec: buffers
vous verrez la liste des tampons comme
1 a.php
2 b.php
3 c.php
si vous voulez supprimer b.php du tampon
:2bw
si vous voulez supprimer/fermer tous les tampons
:1,3bw
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, l'utilisation de noms de fichiers est souvent plus efficace.
Par exemple, après avoir ouvert quelques fichiers .txt pour me rafraîchir la mémoire, copiez et collez quelques lignes de texte à utiliser comme modèle, etc., puis tapez ce qui suit:
:bd txt <Tab>
Notez que la chaîne correspondante ne doit pas nécessairement figurer 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 initialement saisie intacte, prête à être complétée.
Voici un exemple:
doc1.txt doc2.txt
:bd txt
Je pourrais revenir en arrière sur le bit 'txt' et taper le nom du fichier que je souhaite supprimer, mais cela devient vraiment pratique, c'est que je n'ai pas à le faire: si j'appuie une nouvelle fois sur la touche de tabulation, Vim termine automatiquement ma commande. avec le premier match:
:bd doc1.txt
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 correspondance (troisième, etc.), il me suffit de continuer à appuyer sur la touche de tabulation pour que ma commande: bd parcourt la liste des correspondances.
Naturellement, cette méthode peut également être utilisée pour passer à un tampon donné via des commandes telles que: b ..: sb .. etc.
Cette approche est particulièrement utile lorsque l'option Vim "masqué" est définie, car la liste des mémoires tampon peut rapidement devenir assez longue, recouvrant plusieurs écrans et compliquant la tâche de repérer la mémoire tampon recherchée.
Pour tirer le meilleur parti de cette fonctionnalité, il est probablement préférable de lire le fichier d'aide Vim suivant et d'ajuster en conséquence le comportement de la complétion de la ligne de commande Tab afin qu'il corresponde mieux à votre flux de travail:
:help wildmode
Le comportement que j'ai décrit ci-dessus résulte du paramètre suivant, que j'ai choisi par souci de cohérence pour émuler l'achèvement de bash:
:set wildmode=list:longest,full
Contrairement à l'utilisation de numéros de mémoire tampon, le mérite de cette approche réside dans le fait que je me souviens généralement d'au moins une partie d'un nom de fichier donné, ce qui me permet de cibler directement la mémoire tampon plutôt que de devoir d'abord rechercher son numéro via la commande: ls.
Utilisation:
:ls
- pour lister les tampons:bd#n
- pour fermer le tampon où #n est le numéro du tampon (utilisez ls
pour l'obtenir)Exemples:
supprimer le tampon 2:
:bd2
Vous pouvez également mapper les touches de fonction suivantes et précédentes sur les touches de fonction, ce qui facilite grandement le parcours dans les mémoires tampons.
map <F2> :bprevious<CR>
map <F3> :bnext<CR>
de mon vimrc
[EDIT: c’était une suggestion stupide de la part d’une époque où je ne connaissais pas assez Vim. S'il vous plaît ne pas utiliser des tabulations au lieu de tampons; les onglets sont les "agencements de fenêtre" de Vim]
Peut-être passer à utiliser des onglets?
vim -p a/*.php
ouvre les mêmes fichiers dans des onglets
gt
et gT
basculer les onglets d'avant en arrière
:q
ne ferme que l'onglet en cours
:qa
ferme tout et sort
:tabo
ferme tout sauf l'onglet actuel
Ceux qui utilisent un plugin de navigation dans la mémoire tampon ou dans l'arborescence, comme Buffergator ou NERDTree, devront basculer ces scissions avant de détruire le tampon actuel - sinon, vous enverrez vos scissions à wonkyville.
J'utilise:
"" Buffer Navigation
" Toggle left sidebar: NERDTree and BufferGator
fu! UiToggle()
let b = bufnr("%")
execute "NERDTreeToggle | BuffergatorToggle"
execute ( bufwinnr(b) . "wincmd w" )
execute ":set number!"
endf
map <silent> <Leader>w <esc>:call UiToggle()<cr>
Où "NERDTreeToggle
" dans cette liste est identique à la saisie de :NERDTreeToggle
. Vous pouvez modifier cette fonction pour l'intégrer à votre propre configuration.
Que diriez-vous
vim -O a a
De cette façon, vous pouvez éditer un seul fichier sur votre gauche et parcourir l'intégralité du répertoire sur votre droite ... Juste une pensée, pas la solution ...