2012-06-29 14 views
5

Non vedo l'opzione di menu per il comando Copy. Ecco il menu che vedo sulla mia macchina Windows 7:Comando di copia NerdTree in 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 

Secondo il plugin documentation, il comando Copy non è supportato su tutte le piattaforme.

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

Qualcuno è riuscito a farlo funzionare in Windows?

+0

Hai già provato a spingere 'c' a quel prompt? – mraaroncruz

+0

Sì, premendo 'c' non ha effetto. –

+1

A quanto pare, [gli altri si trovano ad affrontare lo stesso problema] (https://github.com/scrooloose/nerdtree/issues/152) ma a nessuno sembra importare. Inoltre, vedi [questo post] (http://got-ravings.blogspot.fr/2008/07/windows-copying-commands-suck-giant.html) dell'autore di NERDTree. – romainl

risposta

2

La causa principale del problema è discussa in dettaglio (in modo piuttosto colorato) in questo blog post. (Ht romainl). Sono riuscito a trovare una soluzione utilizzando cp.exe fornito con msygit.

Garantire cp.exe è nel tuo percorso

Il file cp.exe può essere trovato in <GIT_HOME>\bin directory. Il mio percorso non conteneva il `` \ \ directory. So I copied cp.exe and msys-1.0.dll` in una directory nel mio percorso.

Impostare la variabile g:NERDTreeCopyCmd

aggiungere la riga in basso alla fine del file di _vimrc

let g:NERDTreeCopyCmd= 'cp -r ' 

Fissare l'attuazione di s:Path.copy funzione.

Sostituire le linee 2297-2299 di ~/vimfiles/bundle/nerdtree/plugin/NERD_tree.vim (supponendo che hai utilizzato patogeno per la gestione dei plugin vim)

  • Sostituire le linee 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 le linee di seguito

    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

Questo suggerimento non funziona più così com'è. Devi modificare vimfiles/bundle/nerdtree/lib/nerdtree/path.vim, attorno alla riga 166. E usare "nerdtree # runningWindows()" invece di "s: running_windows" – tharibo

2

ho ottenuto che funziona con l'installazione di Gow

choco install -y gow

Poi aggiungendo questa linea a Vim

let g:NERDTreeCopyCmd= 'cp -r'

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

PS: Il comando Choco proviene da https://chocolatey.org/

+0

Funziona! Tuttavia, ho visualizzato l'errore "NERDTree: Could not copy node" quando il file che sto tentando di copiare ha degli spazi al suo interno ... Qualche consiglio su questo? –