Как мне скопировать файл в netrw?


15

Текущий рабочий каталог ./A/B/. Пустой документ открыт , когда я печатаю vim, и netrw открывается с помощью команды :e.Окна расщепленной vs., и я могу перейти в каталог верхнего уровня, то есть ./A/. Теперь я хотел бы скопировать файл a_file.jpgиз ./A/B/в ./A/.

Я пробовал yyна целевом файле и pв целевом окне (каталоге), но это не достигло моей цели.

Есть ли способ достичь цели без установки дополнительных плагинов?


1
Попробуйте следующее: нажмите mtна целевой каталог, в который вы хотите сделать копию файла (чтобы пометить его; путь к папке должен появиться в баннере после Copy/Move Tgt:), нажмите mfна файл, который вы хотите скопировать, чтобы пометить его как ну, тогда нажмите, mcчтобы на самом деле выполнить копию.
Сагино

Ответы:


18

Вы не можете использовать yи pт. Д. Для копирования файлов в netrw - он поставляется со своими собственными командами. Смотрите :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.

Ваш случай упрощен, так как ./Aявляется родителем ./A/B:

  1. Открыть ./A/B, перейти к линии, имеющей ../,
  2. Отметьте это mt
  3. Перейдите к строке с файлом, который вы хотите скопировать.
  4. Нажмите mf, а затем mc.

Пример:

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

1 directory, 1 file
$ vim foo/bar

Сейчас:

  1. Перейти к ..и нажмите mt:

    введите описание изображения здесь

  2. Заголовок изменится, чтобы показать текущую цель:

    введите описание изображения здесь

  3. Перейдите к файлу (здесь test) и нажмите mf. Это подсвечивается для меня:

    введите описание изображения здесь

  4. Нажмите mc- подсветка исчезнет. Теперь перейдите к родительской папке - файл должен присутствовать:

    введите описание изображения здесь


9

Я бы сделал это из режима командной строки:

  • Выберите нужный файл в netrw
  • Откройте командную строку и введите - :!mv <C-R><C-F> ../<C-R><C-F>

Здесь <C-R><C-F>вставляется имя файла под курсором, поэтому вам не нужно вводить имя файла.


1
Очень круто. Не включает полный путь, если вы прошли через дерево в netrw ...
J0hnG4lt

3
  • Установите курсор ./(или каталог, в который вы хотите скопировать), нажмитеmt
  • Установите курсор на файл, который вы хотите скопировать, нажмите mf, затем mcвведите имя нового файла,enter

Я получил(netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!$
Гарри Морено


@HarryMoreno это сработало на моем osx iTerm2
itsnikolay
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.