2017-10-02 7 views
1

Lors de l'ouverture d'un nouveau fichier via la commande :E (pas avec le plugin ctrl-P, cela fonctionne très bien!), Vim et MacVim (8.0.1098) rejettent le contenu du tampon courant , il devient donc impossible de passer à si en utilisant :bn! et :bp! commandes.Le tampon courant dans Vim est remplacé lors de l'ouverture d'un fichier

Cependant, si je modifie le contenu du tampon en cours, puis ouvrez un autre fichier et seulement ensuite essayez de fermer MacVim, je reçois un message d'avertissement sur le fichier non enregistré. Donc, le tampon doit toujours être suspendu quelque part?

De plus, si je divise la fenêtre et ouvre un fichier, les deux tampons restent ouverts.

J'ai set hidden dans mes .vimrc et en cours d'exécution :set hidden? retours hidden, ce qui signifie que vous faites défiler les tampons cachés avec :bn! et :bp! devrait fonctionner, mais il ne fonctionne pas.

Répondre

0

Le fait que ctrlP n'ait eu aucun problème en ouvrant les buffers de commutation & a suggéré que quelque chose n'allait pas avec netrw.

En regardant de plus près, il s'est avéré que mon plugin netrw était obsolète.

La mise à niveau vers v162j (via Vundle) a résolu le problème.

1

Lors de l'ouverture d'un nouveau fichier via la commande :E, à la fois Vim et MacVim (8.0.1098) jeter le contenu du tampon courant, de sorte qu'il devient impossible de passer à l'aide si :bn! et :bp! commandes.

Le comportement que vous décrivez est incompatible avec:

  • le comportement attendu,
  • et le comportement que je reçois avec la même version exacte.

Pour le tester de manière répétée:

$ vim -Nu NORC a.txt  starts Vim with a.txt 
:Explore     replaces the current buffer with a netrw buffer 
(press <CR> on b.txt) replaces the netrw buffer with b.txt 
:bn (or :bp)    replaces the current buffer with a.txt 

Cependant, si je modifie le contenu du tampon courant, puis ouvrez un autre fichier et ne puis essayer de fermer MacVim, je reçois un avertissement un message sur le fichier non enregistré. Donc, le tampon doit toujours être suspendu quelque part?

Oui, c'est presque certainement dans la liste des tampons. Essayez :ls pour les tampons répertoriés et :ls! pour tous les tampons. :ls devrait vous montrer a.txt à # 1 et b.txt à # 3 tandis que :ls! devrait vous montrer le même, plus le tampon netrw à # 2.

Voir aussi :help 'hidden'.

--- EDIT ---

Pour référence, la sortie attendue de :ls! devrait être:

1  "a.txt"      line 1 
2u#h- "~/"       line 11 
3 %a "~/b.txt"      line 1 

Notez que le seul tampon "liste rouge" doit être le tampon Netrw: ~/ à # 2.

Avez-vous modifié quelque chose dans un fichier ou un répertoire lié à Vim en dehors de $HOME?

+0

essayé la ligne de commande, obtenant même comportement, bien que je puisse le voir dans ': ls': '' 'ligne 1u "a.txt" ligne 1 2u # h- "~ /" 29 3 % a "~/b.txt" ligne 1''' – Art

+0

Trouvé cette question - https://stackoverflow.com/questions/15945157/avoid-vim-holding-closed-buffers-open-in-the-background mais mon 'set hidden?' renvoie 'nohidden' qui devrait être le mode voulu? Le retourner à 'hidden' renvoie un comportement correct. Bizarre. – Art

+0

Oui, 'set hidden' est quasiment obligatoire. – romainl