Comment copier un fichier dans netrw?

15

Le répertoire de travail actuel est ./A/B/. Un document vide est ouvert lorsque je tape vim, et le netrw est ouvert avec la commande :e.La fenêtre est divisée par vs., et je peux naviguer vers le répertoire de niveau supérieur, c'est-à-dire ./A/. J'aimerais maintenant copier un fichier a_file.jpgde ./A/B/à ./A/.

J'ai essayé yyle fichier cible et pdans la fenêtre cible (répertoire), mais cela n'a pas atteint mon objectif.

Existe-t-il un moyen d'atteindre l'objectif sans installer de plugins supplémentaires?

user3813057
la source
1
Essayez ce qui suit: appuyez mtsur le répertoire cible dans lequel vous souhaitez faire une copie d'un fichier (pour le marquer; le chemin vers le dossier doit apparaître dans la bannière après Copy/Move Tgt:), appuyez mfsur le fichier que vous souhaitez copier pour le marquer comme bien, puis appuyez sur mcpour effectuer la copie.
saginaw

Réponses:

18

Vous ne pouvez pas utiliser y, petc., pour copier des fichiers dans netrw - il est livré avec ses propres commandes. Voir :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.

Votre cas est simplifié car ./Aest le parent de ./A/B:

  1. Ouvrez ./A/B, passez à la ligne ayant ../,
  2. Marquez-le avec mt
  3. Accédez à la ligne contenant le fichier que vous souhaitez copier.
  4. Appuyez sur mf, puis sur mc.

Exemple:

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

1 directory, 1 file
$ vim foo/bar

Maintenant:

  1. Accédez à ..et appuyez sur mt:

    entrez la description de l'image ici

  2. L'en-tête changera pour afficher la cible actuelle:

    entrez la description de l'image ici

  3. Accédez au fichier (ici test) et appuyez sur mf. Il est mis en évidence pour moi:

    entrez la description de l'image ici

  4. Appuyez sur mc- la surbrillance disparaît. Naviguez maintenant vers le dossier parent - le fichier doit être présent:

    entrez la description de l'image ici

muru
la source
9

Je le ferais en mode ligne de commande:

  • Sélectionnez le fichier dont vous avez besoin dans netrw
  • Ouvrez la ligne de commande et tapez - :!mv <C-R><C-F> ../<C-R><C-F>

Ici, <C-R><C-F>insère le nom du fichier sous le curseur, vous n'avez donc pas à taper le nom du fichier.

Boris Serebrov
la source
1
Très cool. N'inclut pas le chemin complet si vous avez traversé votre arbre dans netrw ...
J0hnG4lt
3
  • Placez le curseur sur ./(ou le répertoire dans lequel vous souhaitez copier), appuyez surmt
  • Placez le curseur sur le fichier que vous souhaitez copier, appuyez sur mf, puis mctapez un nom de nouveau fichier,enter
itsnikolay
la source
J'ai eu(netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!$
Harry Moreno
solution pour osx stackoverflow.com/questions/31811335/…
Harry Moreno
@HarryMoreno cela a fonctionné sur mon osx iTerm2
itsnikolay