NerdTree dizin panelinde geçerli dosyayı gösteren bir kısayol var mı?
TextMate 'Dosyayı Çekmecede Göster' gibi - Ctrl + Command + R
NerdTree dizin panelinde geçerli dosyayı gösteren bir kısayol var mı?
TextMate 'Dosyayı Çekmecede Göster' gibi - Ctrl + Command + R
Yanıtlar:
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.
Varsayılan olarak herhangi bir şeye bağlı olduğunu düşünmüyorum, bu yüzden kendiniz bir tuş ataması yapmanız gerekiyor.
nmap ,n :NERDTreeFind<CR>
.vimrc dosyamda görünen şey ile birlikte
nmap ,m :NERDTreeToggle<CR>
:NERDTreeFind
Şuna bakın, senkronizasyon işlemini otomatikleştirir, arabelleği her değiştirdiğinizde nerdtree otomatik olarak kendini yeniler ( buradan küçük değişikliklerle kopyaladım )
" 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()
BufReadyerine olay kullanmak BufEnter.
Bu aynı zamanda muhtemelen sadece bir yorum olmalıdır. Mevcut sürümde NerdTree'yi değiştirmek ve SyncTree kullanmak, NERDTree'nin iki kez çağrılmasına neden olur. Bu değişiklik, bu sorunu çözüyor gibi görünüyor:
" 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>
Chen Rushan'ın yanıtı + yorum, yalnızca ağacın etkinleştirilmesi dışında benim için mükemmel bir şekilde çalıştı. Bu ayarlar, ağaç açıldığında geçerli dosyayı ağaçta gösterecektir.
" 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>
Chen Rushan'ın gönderisine uygun olarak,
autocmd BufEnter * call SyncTree()
NERDTree'nin kapanmasına izin vermeyecek. NERDTree'nin Geçiş yapmasına izin verirken NERDTree'deki mevcut açık arabelleği vurgulayacak bir çözüm (aşağıdan başka) bulamadım.
Aşağıda, NERDTree'yi değiştirebilmek ve bir Ctrl + ]sonraki arabellek eşlemem için kullanırken dosyaların vurgulanmasını sağlamak için bir araya getirdiklerim var .
Umarım diğerleri bunu geliştirebilir.
"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>