Revenir de netrw (explorateur de fichiers Vim) au tampon modifié?


2

Selon "Practical Vim" et l'aide de Vim, le raccourci <C-^>est censé me renvoyer au fichier modifié. J'entre netrw using :E.

Comme expérience, j'ai essayé de remapper le raccourci par défaut comme suit:

:nnoremap <C-y> <C-^>

Une fois que j'utilise, <C-y>je reçois des commentaires:

E23: No alternate file

... mais je ne reviens pas dans le tampon édité.

Comment puis-je revenir au tampon édité, ou d'ailleurs, comment puis-je résoudre ce problème pour savoir ce qui m'empêche d'y revenir conformément à la procédure documentée?

NB: Je mets le mappage sur l'invite de commande, pas dans .vimrc.

Réponses:


4

Le fichier alternatif est, pratiquement parlant, le tampon qui était précédemment ouvert dans la même fenêtre:

:e file1
:e file2
<C-^> shows file1
<C-^> shows file2
<C-^> shows file1

<C-^>est utilisé pour basculer rapidement entre deux tampons dans la même fenêtre .

Vous n’avez peut-être pas accès à un "fichier alternatif" (probablement une chose nette qui n’a pas vraiment de sens pour moi) et qui <C-^>ne sert à rien ici.

Au lieu de cela, utilisez :bdce qui supprime le tampon actuel (netrw) et vous replace dans le tampon précédent. Notez que vous pouvez utiliser :Rexpour récupérer la dernière fenêtre de netrw à tout moment.

Si vous n'ouvrez pas de fichiers (vous utilisez netrw pour rechercher des informations), votre flux de travail peut être le suivant:

:Ex
(exploration)
:bd
if you want to start a new exploration,
    :Ex
    :bd
if you want to explore from where you were,
    :Rex
    :bd

Cependant, vous devriez lire :h netrwcar il contient plus de commandes qui vous aideraient probablement beaucoup: :Hex[plore](ouvre netrw dans une fenêtre divisée horizontalement), :Vex[plore](ouvre netrw dans une fenêtre divisée verticalement), :Tex[plore](ouvre netrw dans un nouvel onglet)… laissez-vous aller sur votre safari tout en gardant un "état".

Comme alternative, <C-o>et <C-i>sont deux raccourcis pratiques qui vous permettent de monter et descendre le Jumplist. Dans votre cas, <C-o>peut être le moyen le plus rapide de revenir à la mémoire tampon précédente.


1
excellente réponse. :bdest exactement ce que je cherchais dans ce cas. Les autres commandes sont bien dans une grande fenêtre. Depuis que j'ai l'habitude tmuxde diviser mon espace de travail, la succession d'écrans que Vim obtient est en fait plutôt petite.
0xC0000022L

0

Je ne vois pas comment la cartographie a quelque chose à voir avec le E23; vous devriez obtenir la même erreur avec la <C-^>commande d' origine . Probablement, aucun autre fichier n'a encore été défini; certains plugins utilisent aussi explicitement la :keepaltcommande pour éviter d’enregistrer le changement de tampon.

Vous pouvez vérifier le nom du fichier alternatif via

:echo expand('#')

ou, dans la sortie de :ls, recherchez la ligne qui a un #sceau.


Merci d'avoir pris le temps de répondre. Hélas, ce n'est pas utile. Quand je l' utilise , :lsje vois le fichier modifié en en netrw avec la liste #. Cependant, cela ne me permet pas de revenir en arrière - ce qui est l'essence de ma question. J'ai essayé le remappage principalement parce qu'il ^est "plus difficile" de synthétiser sur un clavier anglais américain qu'une lettre simple.
0xC0000022L
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.