Como adicionar NERDTree ao seu .vimrc


118

Como adiciono NERDTree ao meu .vimrc?


Eu atualizei minha resposta. Não tenho certeza se você pode adicioná-lo ao seu .vimrc para fazer o que quiser, mas sei que você pode executar o vim na linha de comando de uma forma que abra o NERDTree automaticamente. Dê uma olhada :)
— Steven Kryskalla

Respostas:


199

Ok, a versão anterior era um pouco concisa, mas a resposta que você está procurando é adicionar a linha abaixo em seu ~/.vimrcarquivo. Ele diz ao Vim que você deseja configurar um comando para ser executado quando o Vim for iniciado, mas como depende de vários plug-ins para serem carregados, você não deseja executá-lo até que toda a inicialização seja concluída:

autocmd VimEnter * NERDTree

Se, no entanto, você está incomodado com o fato de que o cursor sempre começa na janela NERDTree, você pode adicionar um segundo comando automático que moverá o cursor para a janela principal:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

Eu não sei por que, mas isso não funciona para mim. Tenho que ligar para: NERDTreeToggle dentro do vim para mostrar nerdtree de qualquer maneira
— hgf

Se estiver usando um script como o vimpager, você deve mover essas linhas para o seu /.vim/after/plugin/NERD_tree.vimscript, para que ele não tente executar com os plug-ins desativados.
— Joshua Olson

9
Você não precisa de dois autocmds separados:autocmd VimEnter * NERDTree | wincmd p
— Dave James Miller

poderia simplesmente especificar o caminho real no qual desejo começar? - Sim funciona com uma pasta (apenas sem barra no final)
— AturSams

1
Eu prefiro fazer o seguinte: autocmd VimEnter * NERDTreee então autocmd VimEnter * if argc() | wincmd p | endif. Dessa forma, o cursor está em NERDTree se eu não abri um arquivo específico, mas se eu escolhi um arquivo, ele começa na janela principal.
— user2275806

20

Gosto de ver NERDTree apenas quando inicio o vim sem argumentos de arquivo, então adicionei isso ao meu .vimrc:

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

19

Você está em um sistema Windows ou unix-y?

Se você estiver em um sistema unix-y, coloque plug-ins ~/.vim/plugin. Esta é a aparência do meu diretório de plug-ins:

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

Depois disso, ele começa a funcionar imediatamente. Tente executar o vim assim:

$ vim .

Deve abrir o diretório atual na visualização em árvore do NERD.

Se você estiver no Windows, coloque os plug-ins aqui: C:\Program Files\Vim\vim70\plugin


Para fazer o NERDTree carregar automaticamente quando você iniciar o vim, execute-o assim na linha de comando:

$ vim -c "NERDTree" some_file.txt

Você pode definir um alias para isso em .bashrc:

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

Agora, sempre que você executar vimt(ao invés de vim), você também abrirá o NERDTree no lado esquerdo da janela.

Você também pode adicionar uma tecla de atalho para iniciar o NERDTree da .vimrcseguinte maneira:

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

nmap <ESC>t :OpenNERDTree<CR>

Agora, quando você clicar em Escseguida, tele abrirá o NERDTree.


Estou executando uma máquina Unix-y. Eu tenho o NERDTree instalado, o que eu preciso é ter o NERDTree para iniciar quando eu digitar vim na linha de comando. Para que um navegador de arquivos sempre abra à esquerda, como no Textmate. Não sei o que colocar no vimrc para fazer isso, tentei: NERDTree, mas parece não reconhecer o comando ...
— chutsu

2
Pensei em acrescentar que há um: NERDTreeToggle embutido no mapeamento que você pode mapear, o que torna sua função personalizada bastante redundante.
— Gavin Gilmour

1
Dica excelentealias vimt='vim -c "NERDTree" $1'
— pedrosaurio

8

De acordo com as instruções do NERDTree, você pode apenas usar pathogen.vim . Instale-o com:

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

Adicione ao seu .vimrc:

execute pathogen#infect()

em seguida, instale o NERDTree:

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

E se você quiser abrir um NERDTree automaticamente quando o Vim for inicializado, adicione o seguinte ao seu .vimrc:

autocmd vimenter * NERDTree

7

As respostas aqui têm um pequeno problema.

Se você chamar vim --nopluginou usar um script que usa um --nopluginmodo como o vimpager , isso causará este erro:

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

Para evitar isso, coloque o comando em ~/.vim/after/plugin/NERD_tree.vimvez disso:

autocmd VimEnter * NERDTree

E também pode ser uma boa ideia testar se também NERDtreeestá disponível, ou seja:

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

1
Boa ... Eu também uso o Vim como um pager e simplesmente adicionei um argumento para desabilitar os comandos automáticos ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
— Eddie B

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.