Frage Rückkehr von netrw (Vim-Datei-Explorer) zu editiertem Puffer?


Laut "Practical Vim" und dem Vim hilft die Abkürzung <C-^> soll mich zu der bearbeiteten Datei zurückbringen. Ich betrete netrw mit :E.

Als Versuch habe ich versucht, die Standardverknüpfung wie folgt neu zu ordnen:

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

Sobald ich benutze <C-y> Ich bekomme Feedback:

E23: No alternate file

... aber ich komme nicht zurück zum bearbeiteten Puffer.

Wie kann ich zu dem bearbeiteten Puffer zurückkehren, oder wie kann ich dieses Problem debuggen, um herauszufinden, was verhindert, dass ich gemäß dem dokumentierten Verfahren zu ihm zurückkehren kann?

Hinweis: Ich setze das Mapping in der Eingabeaufforderung, nicht in .vimrc.


2
2018-02-16 00:36


Ursprung




Antworten:


Die alternative Datei ist praktisch der Puffer, der zuvor im selben Fenster geöffnet wurde:

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

<C-^> wird verwendet, um schnell zwischen zwei Puffern umzuschalten im selben Fenster.

Sie haben möglicherweise keine "alternative Datei", zu der Sie springen können (wahrscheinlich eine Netrw-Sache, die für mich keinen Sinn ergibt) und <C-^> nützt hier nichts.

Verwenden Sie stattdessen :bd Das löscht den aktuellen Puffer (netrw) und bringt Sie zurück in den vorherigen Puffer. Beachten Sie, dass Sie verwenden können :Rex um jederzeit das neueste netrw-Fenster zurück zu bekommen.

Wenn Sie keine Dateien öffnen (Sie verwenden netrw, um nach Informationen zu suchen), könnte Ihr Workflow wie folgt aussehen:

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

Sie sollten jedoch lesen :h netrw weil es mehr Befehle hat, die dir wahrscheinlich sehr helfen würden: :Hex[plore] (öffnet sich in einem horizontal geteilten Fenster), :Vex[plore] (öffnet sich in einem vertikal geteilten Fenster), :Tex[plore] (öffnet sich netrw in einem neuen Tab) ... Diese Befehle werden Sie auf Ihrer Safari gehen lassen, während Sie einen "Zustand" beibehalten.

Als Alternative, <C-o> und <C-i> sind zwei praktische Abkürzungen, mit denen Sie den Jumplist auf und ab gehen können. In deiner Situation, <C-o> ist möglicherweise der schnellste Weg, um zum vorherigen Puffer zurückzukehren.


4
2018-02-16 17:02



ausgezeichnete Antwort. :bd ist genau das, was ich in diesem Fall gesucht habe. Die anderen Befehle sind nett in einem großen Fenster. Seit ich benutze tmux Um meinen Arbeitsbereich zu teilen, ist der Bildschirm, den Vim bekommt, eigentlich eher klein. - 0xC0000022L


Ich sehe nicht, wie das Mapping etwas mit dem zu tun hat E23; Sie sollten den gleichen Fehler mit dem Original erhalten <C-^> Befehl. Wahrscheinlich wurde noch keine alternative Datei festgelegt. Einige Plugins verwenden explizit auch die :keepalt Befehl, um die Aufzeichnung der Pufferänderung zu vermeiden.

Sie können den alternativen Dateinamen über überprüfen

:echo expand('#')

oder in der Ausgabe von :ls, suche nach der Zeile, die a hat # Siegel.


0
2018-02-16 11:02



Danke, dass du dir die Zeit genommen hast zu antworten. Leider ist es nicht hilfreich. Wenn ich benutze :ls Ich sehe die bearbeitete Datei während in netrw aufgeführt mit #. Das lässt mich aber nicht zurückspringen - das ist die Essenz meiner Frage. Ich habe das Remapping hauptsächlich deswegen versucht ^ ist "härter" auf einer US-englischen Tastatur zu synthetisieren, als ein einfacher Buchstabe. - 0xC0000022L