Existe-t-il un raccourci qui révèle le fichier actuel dans le panneau du répertoire NerdTree.
Comme TextMate 'Révéler le fichier dans le tiroir' - Ctrl + Commande + R
Existe-t-il un raccourci qui révèle le fichier actuel dans le panneau du répertoire NerdTree.
Comme TextMate 'Révéler le fichier dans le tiroir' - Ctrl + Commande + R
Réponses:
dans: 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.
Je ne pense pas que ce soit lié à quoi que ce soit par défaut, vous devez donc faire un raccourci clavier vous-même.
nmap ,n :NERDTreeFind<CR>
est ce qui apparaît dans mon .vimrc, avec
nmap ,m :NERDTreeToggle<CR>
:NERDTreeFind
Vérifiez cela, il automatise l'opération de synchronisation, chaque fois que vous changez de tampon, le nerdtree se rafraîchit automatiquement (j'ai copié à partir d' ici avec de minuscules modifications)
" 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
événement à la place de la BufEnter
résolution du problème.
Cela devrait également être probablement juste un commentaire. Avec la version actuelle, le basculement de NerdTree et l'utilisation de SyncTree font que NERDTree est appelé deux fois. Cette modification semble résoudre ce problème:
" 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>
Pour aller avec le message de Chen Rushan, l'appel autocmd BufEnter * SyncTree () ne laissera pas NERDTree se fermer. Je n'ai pas trouvé de solution (autre que ci-dessous) qui mettrait en évidence le tampon ouvert actuel dans NERDTree tout en permettant à NERDTree de basculer.
Voici ce que j'ai rassemblé pour pouvoir basculer NERDTree et mettre en évidence les fichiers en utilisant Ctrl +] pour mon prochain mappage de tampon.
J'espère que d'autres pourront améliorer cela.
"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>
La réponse de Chen Rushan + le commentaire a parfaitement fonctionné pour moi uniquement sauf lorsque l'arbre est activé. Ces paramètres révèlent le fichier actuel dans l'arborescence lorsque l'arborescence est ouverte.
" 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>