Cómo agregar NERDTree a su .vimrc


118

¿Cómo agrego NERDTree a mi .vimrc?


Actualicé mi respuesta. No estoy seguro de que pueda agregarlo a su .vimrc para hacer lo que quiera, pero sé que puede ejecutar vim desde la línea de comandos de una manera que abra NERDTree automáticamente. Echa un vistazo :)
Steven Kryskalla

Respuestas:


199

De acuerdo, la versión anterior era un poco concisa, pero la respuesta que está buscando es agregar la línea a continuación en su ~/.vimrcarchivo. Le dice a Vim que desea configurar un comando para que se ejecute cuando se inicie Vim, pero como depende de que se carguen varios complementos, no desea ejecutarlo hasta que finalice toda la inicialización:

autocmd VimEnter * NERDTree

Sin embargo, si le molesta el hecho de que el cursor siempre comienza en la ventana NERDTree, puede agregar un segundo comando automático que moverá el cursor a la ventana principal:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

No sé por qué, pero esto no me funciona. Tengo que llamar: NERDTreeToggle dentro de vim para mostrar nerdtree de todos modos
hgf

Si está utilizando un script como vimpager, debe mover estas líneas a su /.vim/after/plugin/NERD_tree.vimscript, para que no intente ejecutarse con los complementos desactivados.
Joshua Olson

9
No necesita dos autocmd separados:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller

¿Podría simplemente especificar la ruta real en la que quiero comenzar? - Sí funciona con una carpeta (pero sin barra al final)
AturSams

1
Prefiero hacer lo siguiente: autocmd VimEnter * NERDTreey luego autocmd VimEnter * if argc() | wincmd p | endif. De esa manera, el cursor está en NERDTree si no he abierto un archivo específico, pero si seleccioné un archivo, comienza en la ventana principal.
user2275806

20

Me gusta ver NERDTree solo cuando inicio vim sin argumentos de archivo, así que agregué esto a mi .vimrc:

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

19

¿Estás en un sistema Windows o Unix-y?

Si está en un sistema Unix-y, coloca complementos ~/.vim/plugin. Así es como se ve mi directorio de complementos:

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

Después de eso, comienza a funcionar de inmediato. Intente ejecutar vim así:

$ vim .

Debería abrir el directorio actual en la vista de árbol de NERD.

Si está en Windows, ponga complementos aquí: C:\Program Files\Vim\vim70\plugin


Para que NERDTree se cargue automáticamente cuando inicie vim, ejecútelo así desde la línea de comando:

$ vim -c "NERDTree" some_file.txt

Puede establecer un alias para esto en su .bashrc:

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

Ahora, cada vez que ejecute vimt(en lugar de vim), también abrirá NERDTree en el lado izquierdo de la ventana.

También puede agregar una tecla de método abreviado para iniciar NERDTree de .vimrcesta manera:

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

nmap <ESC>t :OpenNERDTree<CR>

Ahora cuando se pulse Esca continuación tse hará estallar NERDTree abierta.


Estoy ejecutando una máquina Unix-y. Tengo NERDTree instalado, lo que necesito es que NERDTree se inicie cuando escribo vim en la línea de comandos. Para que un explorador de archivos siempre se abra a la izquierda, como en Textmate. No sé qué poner en el vimrc para hacer esto, lo intenté: NERDTree pero no parece reconocer el comando ...
chutsu

2
Pensé que agregaría que hay un mapeo integrado: NERDTreeToggle que puede asignar, lo que hace que su función personalizada sea bastante redundante.
Gavin Gilmour

1
Excelente consejoalias vimt='vim -c "NERDTree" $1'
pedrosaurio

8

De acuerdo con las instrucciones de NERDTree , puede usar patógeno.vim . Instálelo con:

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

Agregue esto a su .vimrc:

execute pathogen#infect()

luego instale NERDTree:

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

Y si desea abrir un NERDTree automáticamente cuando se inicia Vim, agregue lo siguiente a su .vimrc:

autocmd vimenter * NERDTree

7

Las respuestas aquí tienen un problema menor.

Si llama vim --noplugino usa un script que usa el --nopluginmodo como vimpager , causará este error:

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

Para evitar esto, coloque el comando en su ~/.vim/after/plugin/NERD_tree.vimlugar:

autocmd VimEnter * NERDTree

Y también podría ser una buena idea probar que también NERDtreeestá disponible, es decir:

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

1
Buena ... También uso Vim como localizador y simplemente agregué un argumento para deshabilitar los comandos automáticos ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.