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

问题描述 投票:0回答:3

使用 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 不感兴趣。

macos vim netrw
3个回答
14
投票

阅读更多内容

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

您可以在该过程之前按

cd
或仅在
let g:netrw_keepdir=0
 中按 
.vimrc

(原来的映射是

c
,后来变成了
cd


2
投票

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

我有两个文件夹

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

解决方案似乎是:

此时(想象我已经执行了上述步骤,直到按

mf
之前):我应该在
bar
文件夹上按 ENTER(隐藏列出的文件),然后再次在
bar
文件夹上按 ENTER(现在)重新显示内容/列出的文件),最后按我想要复制的
mf
内的文件上的
bar
NOW 就 netrw 而言,我已将文件标记在正确的目录中,并且
mc
命令将会成功。

我犯的错误是假设只需将光标移动到文件夹内就足以让

mf
工作。我没有意识到我必须“专注”在正确的文件夹中才能使
mf
命令发挥作用。


0
投票

必须为此制作一个修复迷你插件。它可以作为插件安装或复制粘贴到本地配置。

它包装 netrw 以保留当前目录,从而修复

mc
mm
命令(在任何操作系统上,不仅仅是 Mac),并启用
netrw_keepdir=1

https://github.com/dzirtusss/netrw_keepdir_fix

© www.soinside.com 2019 - 2024. All rights reserved.