Як скопіювати файл у netrw?


15

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

Я спробував yyцільовий файл і pв цільовому вікні (каталозі), але це не досяг моєї мети.

Чи є якийсь спосіб досягти мети без встановлення додаткових плагінів?


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

Відповіді:


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 це працювало на моєму ixerm2 osx
itsnikolay
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.