2012-06-29 12 views
5

No veo la opción de menú para el comando Copy. Aquí es el menú que veo en mi máquina de Windows 7:Comando de copia de NerdTree en 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 

De acuerdo con el plugin documentation, el comando Copy no es compatible con todas las plataformas.

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

¿Alguien ha conseguido que esto funcione en Windows?

+0

¿Ya has intentado presionar 'c' en ese prompt? – mraaroncruz

+0

Sí, presionar 'c' no tiene ningún efecto. –

+1

Aparentemente, [otros están enfrentando el mismo problema] (https://github.com/scrooloose/nerdtree/issues/152) pero a nadie parece importarle. Además, vea [esta publicación] (http://got-ravings.blogspot.fr/2008/07/windows-copying-commands-suck-giant.html) por el autor de NERDTree. – romainl

Respuesta

2

La causa del problema se trata en detalle (bastante colorido) en este blog post. (Ht romainl). Logré encontrar una solución usando el cp.exe enviado con msygit.

Asegurar cp.exe es en su camino

El archivo cp.exe se puede encontrar en <GIT_HOME>\bin directorio. Mi ruta no contenía el `` \ bin directory. So I copied cp.exe and msys-1.0.dll` a un directorio en mi ruta.

Establecer la variable de g:NERDTreeCopyCmd

Añadir la siguiente línea al final del archivo _vimrc

let g:NERDTreeCopyCmd= 'cp -r ' 

Fijar la implementación de s:Path.copy función.

Reemplazar las líneas de ~/vimfiles/bundle/nerdtree/plugin/NERD_tree.vim 2297-2299 (suponiendo que utilizó patógeno para la gestión de plugins VIM)

  • Reemplazar las líneas 2297-2299

    let dest = s:Path.WinToUnixPath(a:dest) 
    
    let cmd = g:NERDTreeCopyCmd . " " . escape(self.str(), s:escape_chars) . " " . escape(dest, s:escape_chars) 
    
  • Con las líneas de abajo

    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

Este consejo ya no funciona como está. Tienes que editar vimfiles/bundle/nerdtree/lib/nerdtree/path.vim, alrededor de la línea 166. Y usa "nerdtree # runningWindows()" en lugar de "s: running_windows" – tharibo

2

Lo tengo trabajo mediante la instalación de Gow

choco install -y gow

A continuación, añadir esta línea a VIM

let g:NERDTreeCopyCmd= 'cp -r'

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

PS: El comando choco proviene de https://chocolatey.org/

+0

¡Funciona! Sin embargo, aparece el error 'NERDTree: no se pudo copiar el nodo' cuando el archivo que intento copiar tiene espacios en él ... ¿Algún consejo al respecto? –