macosvimnetrw

Copying files with Vim's netrw on Mac OS X is broken


To copy a file in Vim using netrw has the following steps:

  1. Select the destination directory (using mt)
  2. Select the file to be copied (using mf)
  3. Proceed with copying (using mc)

The commands to use in netrw are:

mt run while cursor is on top of the directory intended to be the destination
mf run while cursor is on top of the file intended to be copied
mc run while cursor is on top of the destination ("marked target") directory

If I do this on an example project, Vim will display something like:

Copy foo.md to : bar.md

Suggesting it's about to do what I want it to, but upon confirming this I get the following error:

1 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!

I've read online that netrw is considered pretty buggy and so there doesn't appear to be much documentation or notes on how to resolve this issue.

I should be clear and state that I'm not interested in using NERDTree.


Solution

  • I think I've figured out the initial issue:

    I had two folders foo and bar (one file in each) and I marked foo as the target directory and then pressed ENTER on the bar folder (just to have a look at the files inside it), and then pressed ENTER on foo (to also have a look at the files inside it). At this point I was then moving my cursor up inside the bar folder and pressed mf on the file I wanted to copy. But as far as netrw was concerned, I was still "focused" on the foo folder.

    The solution seemed to be:

    At this point (imagining I had taken the above steps until just before pressing mf): I should press ENTER on the bar folder (hiding the listed files) and then press ENTER on the bar folder again (now re-showing the content/listed files) and finally press mf on the file inside bar that I want to copy. NOW as far as netrw is concerned, I've marked the file inside the correct directory and the mc command will succeed.

    The mistake I had made was assuming that just moving the cursor inside a folder was enough for mf to work. I neglected to realise that I had to be "focused" in the correct folder for the mf command to work.