2015-11-01 54 views
2

我試圖找到一種方法來有一個正常模式映射,可以切換NERDTree,但是當打開時,告訴NERDTree找到當前文件。一個映射切換NERDTree並打開到當前文件時切換

我知道關於NERDTreeToggleNERDTreeFind,而我期望做的事實質上是這兩個命令的組合。

這裏是我的使用案例:

  1. 當NERDTree不開,我可以打<C-\>和NERDTree將打開到當前文件。
  2. 我可以再次點擊<C-\>,NERDTree將關閉。

回答

1

這是:NERDTreeToggle命令,你的實際需要,而只是添加%

nnoremap <C-\> :NERDTreeToggle %<CR> 

在提供給NERD樹的幫助下,你可以找到:NERDTree命令取決於給出的說法,那在:NERDTreeToggle的情況下,如果該選項卡不存在NERD樹,則該命令與:NERDTree命令的作用相同。

+0

不是真的...這似乎打開一個目錄,而不是文件......除此之外,它不如果NERDTree buffor已經啓動但關閉(隱形),則可以工作。 – cprn

0

第一個答案並沒有爲我工作,所以我想出了這個:

function MyNerdToggle() 
    if &filetype == 'nerdtree' 
     :NERDTreeToggle 
    else 
     :NERDTreeFind 
    endif 
endfunction 

nnoremap <C-\> :call MyNerdToggle()<CR> 
+0

這並不完美。當不在NERDTree緩衝區上時,映射必須使用兩次,並且要關閉它。 – cprn

+0

我同意。然而,當我與g結合使用時,這對我來說是理想的工作:NERDTreeQuitOnOpen = 1。 –

+0

這是一個很好的觀點。在這種情況下,它可以解決您想要一次打開一個文件的情況。我認爲我們需要NERDTree本身的補丁或插件來提供一個選項,只要NERDTree緩衝區重新打開就會自動找到。 – cprn

相關問題