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

Int*_*ist 7 macos vim netrw

要使用netrw在Vim中复制文件,请执行以下步骤:

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

在netrw中使用的命令是:

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

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

Copy foo.md to : bar.md
Run Code Online (Sandbox Code Playgroud)

建议它即将做我想要的,但在确认这一点后,我收到以下错误:

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

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

我应该清楚并说明我对使用NERDTree不感兴趣.

小智 10

阅读更多内容,:help netrw-c了解有关当前目录和浏览目录不匹配的更多信息.

你要么想要c在流程之前按压,要么只是let g:netrw_keepdir=0在你的流程中.vimrc

  • 将其设置为“ mt&gt; mf&gt; cmc”,然后接受。 (2认同)
  • @jm3 刚刚尝试过,它有效。更明确地说,我“mt”了“.”(当前)目录,然后“mf”了我想要复制的文件,然后“cmc”,瞧。 (2认同)

Int*_*ist 2

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

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

解决方案似乎是:

此时(想象我已经执行了上述步骤,直到按 之前mf):我应该在bar文件夹上按 ENTER 键(隐藏列出的文件),然后bar再次在文件夹上按 ENTER 键(现在重新显示内容/列出的文件)并且最后按我要复制的mf里面的文件。现在就 netrw 而言,我已在正确的目录中标记了该文件,并且该命令将会成功。barmc

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