Existe um atalho que revela o arquivo atual no painel de diretório NerdTree.
Como TextMate 'Revelar arquivo na gaveta' - Ctrl + Command + R
Existe um atalho que revela o arquivo atual no painel de diretório NerdTree.
Como TextMate 'Revelar arquivo na gaveta' - Ctrl + Command + R
Respostas:
in: h NERDTree:
:NERDTreeFind :NERDTreeFind
Find the current file in the tree. If no tree exists for the current tab,
or the file is not under the current root, then initialize a new tree where
the root is the directory of the current file.
Não acho que esteja vinculado a nada por padrão, então você mesmo tem que fazer um atalho de teclado.
nmap ,n :NERDTreeFind<CR>
é o que aparece no meu .vimrc, junto com
nmap ,m :NERDTreeToggle<CR>
:NERDTreeFind
Verifique isso, ele automatiza a operação de sincronização, sempre que você alterar o buffer, o nerdtree será automaticamente atualizado (copiei daqui com pequenas modificações)
" Check if NERDTree is open or active
function! IsNERDTreeOpen()
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
endfunction
" Call NERDTreeFind iff NERDTree is active, current window contains a modifiable
" file, and we're not in vimdiff
function! SyncTree()
if &modifiable && IsNERDTreeOpen() && strlen(expand('%')) > 0 && !&diff
NERDTreeFind
wincmd p
endif
endfunction
" Highlight currently open buffer in NERDTree
autocmd BufEnter * call SyncTree()
BufRead
evento no lugar do BufEnter
corrigido o problema.
Provavelmente também deve ser apenas um comentário. Com a versão atual alternando NerdTree e usando SyncTree faz com que NERDTree seja chamado duas vezes. Esta modificação parece resolver esse problema:
" Check if NERDTree is open or active
function! IsNERDTreeOpen()
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
endfunction
" Call NERDTreeFind iff NERDTree is active, current window contains a modifiable
" file, and we're not in vimdiff
function! SyncTree()
if &modifiable && IsNERDTreeOpen() && strlen(expand('%')) > 0 && !&diff
NERDTreeFind
wincmd p
endif
endfunction
" Highlight currently open buffer in NERDTree
autocmd BufEnter * call SyncTree()
function! ToggleNerdTree()
set eventignore=BufEnter
NERDTreeToggle
set eventignore=
endfunction
nmap <C-n> :call ToggleNerdTree()<CR>
Para acompanhar a postagem de Chen Rushan, a chamada autocmd BufEnter * SyncTree () não deixará NERDTree fechar. Não consegui encontrar uma solução (diferente de abaixo) que realçasse o buffer aberto atual no NERDTree enquanto permitia que o NERDTree alternasse.
Abaixo está o que eu juntei para poder alternar NERDTree e ter os arquivos destacados ao usar Ctrl +] para meu próximo mapeamento de buffer.
Esperançosamente, outros podem melhorar isso.
"Buffers
set hidden
function! IsNERDTreeOpen()
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
endfunction
function! NextBuffer()
bnext
if IsNERDTreeOpen()
NERDTreeFind
wincmd p
endif
endfunction
nnoremap <c-]> <Esc>:call NextBuffer()<CR>
function! PrevBuffer()
bprev
if IsNERDTreeOpen()
NERDTreeFind
wincmd p
endif
endfunction
nnoremap <c-[> <Esc>:call PrevBuffer()<CR>
function! ToggleNT()
NERDTreeToggle
endfunction
map <c-u> <Esc>:call ToggleNT()<cr>
A resposta de Chen Rushan + o comentário funcionou perfeitamente bem para mim apenas, exceto quando a árvore é ativada. Esta configuração irá revelar o arquivo atual na árvore quando a árvore for aberta.
" Check if NERDTree is open or active
function! IsNERDTreeOpen()
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
endfunction
function! CheckIfCurrentBufferIsFile()
return strlen(expand('%')) > 0
endfunction
" Call NERDTreeFind iff NERDTree is active, current window contains a modifiable
" file, and we're not in vimdiff
function! SyncTree()
if &modifiable && IsNERDTreeOpen() && CheckIfCurrentBufferIsFile() && !&diff
NERDTreeFind
wincmd p
endif
endfunction
" Highlight currently open buffer in NERDTree
autocmd BufRead * call SyncTree()
function! ToggleTree()
if CheckIfCurrentBufferIsFile()
if IsNERDTreeOpen()
NERDTreeClose
else
NERDTreeFind
endif
else
NERDTree
endif
endfunction
" open NERDTree with ctrl + n
nmap <C-n> :call ToggleTree()<CR>