我没有看到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
Run Code Online (Sandbox Code Playgroud)
根据插件文档,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)
Run Code Online (Sandbox Code Playgroud)
有没有人设法让这个在Windows中工作?
这篇博文(ht romainl)详细(相当生动地)讨论了该问题的根本原因。cp.exe我设法通过使用附带的msygit找到了解决方案。
确保cp.exe在您的路径中
该cp.exe文件可以在目录中找到<GIT_HOME>\bin。我的路径不包含该<GIT_HOME>\bin目录。所以我将cp.exe和复制msys-1.0.dll到我的路径中的目录中。
设置g:NERDTreeCopyCmd变量
_vimrc将以下行添加到文件末尾
let g:NERDTreeCopyCmd= 'cp -r '
Run Code Online (Sandbox Code Playgroud)
修复函数的实现 s:Path.copy。
替换第2297-2299行~/vimfiles/bundle/nerdtree/plugin/NERD_tree.vim(假设你使用pathogen来管理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)
Run Code Online (Sandbox Code Playgroud)
与下面的行
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
Run Code Online (Sandbox Code Playgroud)