在 Mac OS 上使用 Vim 的 netrw 复制文件 X 已损坏

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

使用 netrw 复制 Vim 中的文件有以下步骤:

  1. Select 目标目录(使用 mt
  2. Select要复制的文件(使用mf
  3. 继续复制(使用mc

在 netrw 中使用的命令是:

mt 运行 当光标位于目标目录的顶部时
mf 运行 当光标位于要复制的文件顶部时
mc 运行 当光标位于目标 ("marked target") 目录的顶部时

如果我在示例项目上执行此操作,Vim 将显示如下内容:

Copy foo.md to : bar.md

表明它即将执行我想要的操作,但在确认这一点后,我收到以下错误:

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

我在网上看到 netrw 被认为是有很多错误的,因此似乎没有太多关于如何解决此问题的文档或说明。

我应该明确声明我对使用 NERDTree 不感兴趣。

我想我已经解决了最初的问题:

我有两个文件夹 foobar(每个文件夹一个文件),我将 foo 标记为目标目录,然后在 bar 文件夹上按 ENTER (只是为了查看其中的文件),然后在 foo 上按 ENTER(也为了查看其中的文件)。此时,我将光标向上移动到 bar 文件夹中,然后在我要复制的文件上按 mf。但就 netrw 而言,我仍然 "focused" 在 foo 文件夹上。

解决方案似乎是:

此时(假设我在按下 mf 之前执行了上述步骤):我应该在 bar 文件夹(隐藏列出的文件)上按 ENTER,然后在再次打开 bar 文件夹(现在重新显示 content/listed 文件),最后在我要复制的 bar 中的文件上按 mf现在 就 netrw 而言,我已将文件标记在正确的目录中,mc 命令将会成功。

我犯的错误是假设只需将光标移动到文件夹内就足以让 mf 工作。我没有意识到我必须 "focused" 在正确的文件夹中才能使 mf 命令正常工作。

阅读 :help netrw-c 了解更多关于当前目录和浏览目录不匹配的信息。

你要么想在进程之前按 c,要么在你的 .vimrc

中按 let g:netrw_keepdir=0