web-dev-qa-db-fra.com

Fermer le fichier sans quitter VIM application?

Je suis nouveau à VIM. J'utilise les commandes :e Et :w Pour éditer et écrire un fichier très pratique. Je ne sais pas s'il existe une commande "close" pour fermer le fichier actuel sans quitter VIM?

Je sais que la commande :q Peut être utilisée pour fermer un fichier, mais s'il s'agit du dernier fichier, VIM est également fermé; En fait, sous Mac OS, MacVIM s’arrête. Seule la fenêtre VIM est fermée et je pouvais utiliser Control-N pour ouvrir à nouveau un VIM vierge. Je voudrais que VIM reste ouvert avec un écran vide.

251
David.Chu.ca

Cela supprime le tampon (qui se traduit par la fermeture du fichier)

:bd 
332
Vinko Vrsalovic

Comme déjà mentionné, vous recherchez : bd, cependant cela ne supprime pas complètement le tampon, il est toujours accessible:

:e foo
:e bar
:buffers
  1 #h   "foo"                          line 1
  2 %a   "bar"                          line 1
Press ENTER or type command to continue
:bd 2
:buffers
  1 %a   "foo"                          line 1
Press ENTER or type command to continue
:b 2
2   bar

Vous voudrez peut-être plutôt : bw qui l’enlève complètement.

:bw 2
:b 2 
E86: Buffer 2 does not exist

Ne sachant pas à propos de : bw m'a buggé pendant un bon moment.

41
sebnow

Si vous avez plusieurs fenêtres scindées dans votre fenêtre vim, alors: bd ferme la fenêtre scindée du fichier en cours ... j'aime donc utiliser quelque chose d'un peu plus avancé:

map fc <Esc>:call CleanClose(1)

map fq <Esc>:call CleanClose(0)


function! CleanClose(tosave)
if (a:tosave == 1)
    w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
    exe "b".newbufNr
else
    bnext
endif

if (bufnr("%") == todelbufNr)
    new
endif
exe "bd".todelbufNr
endfunction
21
Gowri
: [N] bd [elete] [!] *: Bd * *: bdel * *: bdelete * * E516 * 
: Bd [elete] [!] [N] 
 Vider le tampon [ N] (par défaut: tampon actuel) et supprimez-le de la liste 
. Si la mémoire tampon a été modifiée, cela échoue, 
 Sauf si [!] Est spécifié, auquel cas les modifications sont perdues. 
 Le fichier n'est pas affecté. Toutes les fenêtres de ce tampon sont 
 Fermées. Si le tampon [N] est le tampon actuel, un autre tampon 
 Sera affiché à la place. Il s'agit de l'entrée la plus récente dans 
 La liste de sauts qui pointe vers un tampon chargé. 
 En fait, le tampon n'est pas complètement supprimé, il est supprimé 
 De la liste des tampons | unlisted-buffer | et les valeurs d’option, les variables 
 et les mappages/abréviations de la mémoire tampon sont effacés 
.
17
ephemient

Si vous avez déjà enregistré le dernier fichier, alors: enew est votre ami (: enew! Si vous ne voulez pas enregistrer le dernier fichier). Notez que le fichier original sera toujours dans votre liste de tampons (celui accessible via: ls).

9
Rytmis

Si vous modifiez un fichier et souhaitez le fermer sans quitter VIM et sans enregistrer, vous devez taper :bd!

6
pablofiumara

: bd peut être mappé. Je mappe à F4, shift-F4 si j'ai besoin de forcer la fermeture à cause d'un changement que je ne veux plus.

3
wbogacz

Il existe un plugin pour cela: bufkill (voir http://www.vim.org/scripts/script.php?script_id=1147 )

Ceci ajoute BD etc pour supprimer le tampon sans fermer aucun des groupes (comme le ferait bd).

2
blueyed

J'ai mappé bd à F4 avec insérer ce qui suit dans votre fichier .vimrc et en appuyant sur F4, le fichier en cours sera fermé.

:map <F4> :bd<CR>
1
Stryker

Regardez le plugin Butane pour conserver la disposition de la fenêtre lors de la fermeture d'un tampon.

https://github.com/Soares/butane.vim

0
Gary Willoughby