使用 netrw 在 Vim 中复制文件有以下步骤:
mt
)mf
)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 不感兴趣。
阅读更多内容
:help netrw-cd
以了解有关当前目录和浏览目录不匹配的更多信息。
您可以在该过程之前按
cd
或仅在 let g:netrw_keepdir=0
中按
.vimrc
(原来的映射是
c
,后来变成了cd
)
我想我已经解决了最初的问题:
我有两个文件夹
foo
和 bar
(每个文件夹一个文件),我将 foo
标记为目标目录,然后在 bar
文件夹上按 ENTER 键(只是为了查看其中的文件) ,然后按 foo
上的 ENTER(也可以查看其中的文件)。此时,我将光标向上移动到 bar
文件夹内,并在我想要复制的文件上按 mf
。但就 netrw 而言,我仍然“专注”于 foo
文件夹。
解决方案似乎是:
此时(想象我已经执行了上述步骤,直到按
mf
之前):我应该在 bar
文件夹上按 ENTER(隐藏列出的文件),然后再次在 bar
文件夹上按 ENTER(现在)重新显示内容/列出的文件),最后按我想要复制的 mf
内的文件上的 bar
。 NOW 就 netrw 而言,我已将文件标记在正确的目录中,并且 mc
命令将会成功。
我犯的错误是假设只需将光标移动到文件夹内就足以让
mf
工作。我没有意识到我必须“专注”在正确的文件夹中才能使 mf
命令发挥作用。
必须为此制作一个修复迷你插件。它可以作为插件安装或复制粘贴到本地配置。
它包装 netrw 以保留当前目录,从而修复
mc
和 mm
命令(在任何操作系统上,不仅仅是 Mac),并启用 netrw_keepdir=1
。