Existe-t-il un raccourci permettant d'afficher le fichier actuel dans le panneau de répertoire de NerdTree ?
Comme TextMate 'Révéler le fichier dans le tiroir' - Ctrl+Command+R
Existe-t-il un raccourci permettant d'afficher le fichier actuel dans le panneau de répertoire de NerdTree ?
Comme TextMate 'Révéler le fichier dans le tiroir' - Ctrl+Command+R
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 qu'il soit lié à quoi que ce soit par défaut, donc vous devez faire un keybind vous-même.
nmap ,n :NERDTreeFind<CR>
est ce qui apparaît dans mon .vimrc, avec
nmap ,m :NERDTreeToggle<CR>
Existe-t-il un moyen de le paramétrer pour qu'il le fasse chaque fois que le NERDTree est créé dans cet onglet ?
Regardez ceci, il automatise l'opération de synchronisation, chaque fois que vous changez de tampon, le nerdtree se rafraîchit automatiquement (j'ai copié de aquí avec de légères 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()
Cela devrait aussi probablement être un simple commentaire. Avec la version actuelle, le fait d'activer NerdTree et d'utiliser SyncTree fait que NERDTree est invoqué deux fois. Cette modification semble corriger 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>
La réponse de Chen Rushan + le commentaire a parfaitement fonctionné pour moi, sauf lorsque l'arbre est activé. Ce paramètre permet de révéler le fichier actuel dans l'arbre lorsque celui-ci est ouvert.
" 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>
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.