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.