Wie kopiere ich eine Datei in netrw?

14

Das aktuelle Arbeitsverzeichnis ist ./A/B/. Ein leeres Dokument wird geöffnet, wenn ich vimtippe, und das netrw wird mit dem Befehl geöffnet. :e.Das Fenster wird durch geteilt vs., und ich kann zum übergeordneten Verzeichnis navigieren, dh ./A/. Jetzt möchte ich eine Datei a_file.jpgvon ./A/B/nach kopieren ./A/.

Ich habe yydie Zieldatei und pdas Zielfenster (Verzeichnis) ausprobiert , aber mein Ziel wurde nicht erreicht.

Gibt es eine Möglichkeit, das Ziel zu erreichen, ohne zusätzliche Plugins zu installieren?

user3813057
quelle
1
Versuchen Sie Folgendes: Tippen Sie mtauf das Zielverzeichnis, in dem Sie eine Kopie einer Datei erstellen möchten (um sie zu markieren; der Pfad zum Ordner sollte im Banner danach angezeigt werden Copy/Move Tgt:), und klicken Sie mfauf die Datei, die Sie kopieren möchten, um sie als zu markieren gut, dann drücken Sie mc, um die Kopie tatsächlich durchzuführen.
Saginaw

Antworten:

17

Sie können nicht verwenden y, petc. Dateien in netrw zu kopieren - es mit seinen eigenen Befehlen kommt. Siehe :h netrw-mc:

MARKED FILES: COPYING                                           netrw-mc {{{2
            (See netrw-mf and netrw-mr for how to mark files)
                      (Uses the global marked file list)

Select a target directory with mt (netrw-mt).  Then change directory,
select file(s) (see netrw-mf), and press "mc".  The copy is done
from the current window (where one does the mf) to the target.

If one does not have a target directory set with netrw-mt, then netrw
will query you for a directory to copy to.

One may also copy directories and their contents (local only) to a target
directory.

Ihr Fall ist vereinfacht, da er ./Aübergeordnet ist von ./A/B:

  1. Öffnen Sie ./A/B, bewegen Sie sich zu der Zeile mit ../,
  2. Markiere es mit mt
  3. Bewegen Sie sich in die Zeile mit der Datei, die Sie kopieren möchten.
  4. Drücken Sie mfund dann mc.

Beispiel:

$ tree foo
foo
└── bar
    └── test

1 directory, 1 file
$ vim foo/bar

Jetzt:

  1. Gehen Sie zu ..und drücken Sie mt:

    Bildbeschreibung hier eingeben

  2. Die Kopfzeile ändert sich und zeigt das aktuelle Ziel an:

    Bildbeschreibung hier eingeben

  3. Gehen Sie zur Datei (hier test) und drücken Sie mf. Es wird für mich hervorgehoben:

    Bildbeschreibung hier eingeben

  4. Drücken Sie mc- die Hervorhebung verschwindet. Navigieren Sie nun zum übergeordneten Ordner - die Datei sollte vorhanden sein:

    Bildbeschreibung hier eingeben

muru
quelle
9

Ich würde dies von der Kommandozeile aus tun:

  • Wählen Sie die gewünschte Datei in netrw aus
  • Öffne den Befehl die Zeile und tippe - :!mv <C-R><C-F> ../<C-R><C-F>

Hier wird der <C-R><C-F>Dateiname unter dem Cursor eingefügt, sodass Sie den Dateinamen nicht eingeben müssen.

Boris Serebrov
quelle
1
Sehr cool. Enthält nicht den vollständigen Pfad, wenn Sie in netrw in Ihren Baum eingetreten sind ...
J0hnG4lt
3
  • Stellen Sie den Cursor auf ./(oder das Verzeichnis, in das Sie kopieren möchten), und drücken Siemt
  • Setzen Sie den Cursor auf die zu kopierende Datei, drücken Sie mfund geben Sie den mcNamen der neuen Datei ein.enter
itsnikolay
quelle
Ich bekam(netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!$
Harry Moreno
Lösung für osx stackoverflow.com/questions/31811335/…
Harry Moreno
@HarryMoreno es funktionierte auf meinem osx iTerm2
itsnikolay