在Mac OS X上使用Vim的netrw复制文件存在问题

13
使用netrw在Vim中复制文件的步骤如下:
  1. 选择目标目录(使用mt
  2. 选择要复制的文件(使用mf
  3. 进行复制操作(使用mc
在netrw中使用的命令为:

mt:将光标置于目标目录上方时运行
mf:将光标置于要复制的文件上方时运行
mc:将光标置于目标(“标记目标”)目录上方时运行

如果在示例项目上执行此操作,Vim 将显示类似以下内容的信息:
Copy foo.md to : bar.md

建议它即将做我想要的事情,但在确认时出现以下错误:
1 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!

我在网上看到netrw被认为是相当有漏洞的,所以似乎没有多少文档或笔记可以解决这个问题。

我应该明确地说明,我不想使用NERDTree。

2个回答

13

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

在进行操作之前,你需要按下cd,或者只需在.vimrc中设置let g:netrw_keepdir=0

(原来映射键是c,现在改为cd)


这些在neovim os x中也不起作用,仅供参考 :-| - jm3
2
@jm3 刚试了一下,可以用。更明确地说,我使用了 mt 命令来移动到当前目录,然后使用 mf 命令选择要复制的文件,最后使用 cmc 命令完成复制。 - Adrien
@adrien 对我也不起作用 :/ - Joe Cabezas
@JoeCabezas 我需要比那更多的细节。你创建了一个问题吗? - Adrien
“cmc”解决方案在Neovim 0.8(夜间版)中对我无效,但将“netrw_keepdir”设置为“0”就解决了问题。 - Stephen Lewis

2
我想我已经找到了最初的问题:
我有两个文件夹foobar(每个文件夹中有一个文件),我将foo标记为目标目录,然后按下bar文件夹上的ENTER键(只是为了查看其中的文件),然后再按下foo(也是为了查看其中的文件)。此时,我正在bar文件夹内移动光标,并在我想要复制的文件上按下mf。但是就netrw而言,我仍然“聚焦”于foo文件夹。
解决方案似乎是:
在这一点上(假设我已经按照上述步骤操作,直到按下mf之前):我应该在bar文件夹上按ENTER键(隐藏列出的文件),然后再次按ENTER键(现在重新显示内容/列出的文件),最后在bar文件夹内的文件上按mf(我想要复制的文件)。现在,就netrw而言,我已经标记了正确目录内的文件,mc命令将成功执行。
我犯的错误是认为只需将光标移动到文件夹内部即可使mf命令生效。我忽略了必须“聚焦”于正确的文件夹才能使mf命令生效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接