Windows 7中的NerdTree复制命令

时间:2012-06-29 22:52:39

标签: vim nerdtree

我没有看到Copy命令的菜单选项。这是我在Windows 7机器上看到的菜单:

NERDTree Menu. Use j/k/enter and the shortcuts indicated
==========================================================
> (a)dd a childnode
  (m)ove the curent node
  (d)elete the curent node

根据插件documentation,并非所有平台都支持Copy命令。

A textual filesystem menu is provided which allows you to create/delete/move file 
and directory nodes as well as copy (for supported OSs)

有没有人设法让它在Windows中运行?

2 个答案:

答案 0 :(得分:2)

blog post中详细讨论了这个问题的根本原因(相当丰富多彩)。(ht romainl)。 我设法使用msygit随附的cp.exe找到了解决方案。

确保cp.exe在您的路径中

可以在cp.exe目录中找到<GIT_HOME>\bin文件。我的路径没有包含``\ bin directory. So I copied cp.exe and msys-1.0.dll`到我路径中的目录。

设置g:NERDTreeCopyCmd变量

将以下行添加到_vimrc文件的末尾

let g:NERDTreeCopyCmd= 'cp -r '

修复s:Path.copy功能的实施。

替换~/vimfiles/bundle/nerdtree/plugin/NERD_tree.vim的第2297-2299行(假设您使用病原体来管理vim插件)

  • 更换第2297-2299行

    let dest = s:Path.WinToUnixPath(a:dest)
    
    let cmd = g:NERDTreeCopyCmd . " " . escape(self.str(), s:escape_chars) . " " . escape(dest, s:escape_chars)
    
  • 使用以下行

    let dest = a:dest
    let cmd = 0
    if s:running_windows
        let cmd = g:NERDTreeCopyCmd . '"' . self.str() . '" "' . dest . '"'
    else
        let cmd = g:NERDTreeCopyCmd . " " . escape(self.str(), s:escape_chars) . " " . escape(dest, s:escape_chars)
    endif
    

答案 1 :(得分:2)

我通过安装Gow

来解决这个问题

df.loc['xxx (yyy)']

然后将此行添加到vim

choco install -y gow

谢谢:https://github.com/scrooloose/nerdtree/issues/152

PS:choco命令来自https://chocolatey.org/