Come aggiungere NERDTree al tuo .vimrc


118

Come aggiungo NERDTree al mio .vimrc?


Ho aggiornato la mia risposta. Non sono sicuro che tu possa aggiungerlo al tuo .vimrc per fare quello che vuoi, ma so che puoi eseguire vim dalla riga di comando in un modo che apre automaticamente NERDTree. Dai un'occhiata :)
Steven Kryskalla

Risposte:


199

Ok, la versione precedente era un po 'concisa, ma la risposta che stai cercando è aggiungere la riga sotto nel tuo ~/.vimrcfile. Indica a Vim che si desidera impostare un comando da eseguire all'avvio di Vim, ma poiché dipende dai vari plug-in da caricare, non si desidera eseguirlo fino al termine dell'inizializzazione:

autocmd VimEnter * NERDTree

Se, invece, sei infastidito dal fatto che il cursore parte sempre nella finestra NERDTree, puoi aggiungere un secondo autocomando che sposterà il cursore nella finestra principale:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

Non so perché, ma questo non funziona per me. Devo chiamare: NERDTreeToggle all'interno di vim per mostrare comunque
nerdtree

Se stai usando uno script come vimpager dovresti spostare queste righe nel tuo /.vim/after/plugin/NERD_tree.vimscript, in modo che non tenti di essere eseguito con i plugin disattivati.
Joshua Olson

9
Non hai bisogno di due autocmd separati:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller,

posso semplicemente specificare il percorso effettivo in cui voglio iniziare? - Sì, funziona con una cartella (solo senza barra alla fine)
AturSams

1
Preferisco fare quanto segue: autocmd VimEnter * NERDTreee poi autocmd VimEnter * if argc() | wincmd p | endif. In questo modo, il cursore si trova su NERDTree se non ho aperto un file specifico, ma se ho scelto un file si avvia nella finestra principale.
user2275806

20

Mi piace vedere NERDTree solo quando avvio vim senza argomenti di file, quindi l'ho aggiunto al mio .vimrc:

autocmd VimEnter * if !argc() | NERDTree | endif

19

Utilizzi un sistema Windows o unix-y?

Se utilizzi un sistema unix-y, inserisci i plugin ~/.vim/plugin. Ecco come appare la mia directory dei plugin:

$ ls ~/.vim/plugin
NERD_tree.vim  scratch.vim  scratchfind.vim

Dopodiché inizia a funzionare subito. Prova a eseguire vim in questo modo:

$ vim .

Dovrebbe aprire la directory corrente nella visualizzazione ad albero NERD.

Se sei su Windows metti i plugin qui: C:\Program Files\Vim\vim70\plugin


Per fare in modo che NERDTree si carichi automaticamente all'avvio di vim, eseguilo in questo modo dalla riga di comando:

$ vim -c "NERDTree" some_file.txt

Puoi impostare un alias per questo nel tuo .bashrc:

alias vimt='vim -c "NERDTree" $1'

Ora ogni volta che esegui vimt(invece di vim) aprirai anche NERDTree sul lato sinistro della finestra.

Puoi anche aggiungere un tasto di scelta rapida per avviare NERDTree in .vimrcquesto modo:

function OpenNERDTree()
  execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()

nmap <ESC>t :OpenNERDTree<CR>

Ora, quando si colpisce Escallora tsi aprirà NERDTree aperta.


Uso una macchina Unix-y. Ho NERDTree installato, quello che mi serve è che NERDTree si avvii quando digito vim nella riga di comando. In modo che un browser di file si apra sempre a sinistra, come in Textmate. Non so cosa mettere nel vimrc per farlo, ho provato: NERDTree ma non sembra riconoscere il comando ...
chutsu

2
Ho pensato di aggiungere che esiste una mappatura integrata: NERDTreeToggle che puoi mappare e che rende la tua funzione personalizzata piuttosto ridondante.
Gavin Gilmour

1
alias vimt='vim -c "NERDTree" $1'
Suggerimento

8

Secondo le istruzioni di NERDTree puoi usare semplicemente pathogen.vim . Installalo con:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

Aggiungi questo al tuo .vimrc:

execute pathogen#infect()

quindi installa NERDTree:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

E se vuoi aprire automaticamente un NERDTree all'avvio di Vim, aggiungi quanto segue al tuo .vimrc:

autocmd vimenter * NERDTree

7

Le risposte qui hanno un piccolo problema.

Se chiami vim --noplugino utilizzi uno script che utilizza --nopluginmodalità come vimpager , causerà questo errore:

Error detected while processing VimEnter Auto commands for "*":
E492: Not an editor command: NERDTree

Per evitare ciò, inserisci invece il comando ~/.vim/after/plugin/NERD_tree.vim:

autocmd VimEnter * NERDTree

E potrebbe anche essere una buona idea testare anche quello NERDtreedisponibile, ad esempio:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif

1
Bravo ... Uso anche Vim come cercapersone e ho semplicemente aggiunto un argomento per disabilitare i comandi automatici ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.