Vim NERDTree | Vim NERDTree | Vim NERDTree重新映射'' 到 '去' |開啟檔案但保留在 NerdTree 視窗中

Vim NERDTree | Vim NERDTree | Vim NERDTree重新映射'' 到 '去' |開啟檔案但保留在 NerdTree 視窗中

我正在嘗試重新映射 Nerdtree 鍵,以便<cr>打開一個文件,但遊標停留在 nerdtree 視窗中。 Nerdtree 預設具有此功能,並且可以透過g + o鍵映射來觸發。我只在 Nerdtree 中才需要此映射。

據我從 Nerdtree 文件中了解到,此映射呼叫的函數NERDTree-go'g' + NERDTreeMapActivateNode

這些是我在 vim rc 中嘗試的內容,結合了 NerdTree 文件和針對類似問題提出的解決方案。

let NERDTree-go=<cr>

nnoremap <CR> :call nerdtree#ui_glue#invokeKeyMap("go")<CR>

nnoremap <CR> :call nerdtree#invokeKeyMap("go")

let g NERDTreeMapActivateNode = <cr>

let g NERDTree-go

還有一個我認為應該可行的 api 方法,但是 a) 看起來應該很容易透過簡單的重新映射來完成,b) 我不知道如何設定它。我已經加載了它,但 vimscript 文件中只有以下內容,這導致了錯誤:

NERDTreeAddKeyMap({
  'key': '<cr>',
  'callback': 'NERDTree-go',
  'scope': 'FileNode',
  'overide': '1'
})

答案1

g:NERDTreeMap...NERDTree 通常透過變數進行配置;不幸的是,沒有單獨的地圖選項go。從:help NERDTree-go

此對應的組合鍵始終是“g”+ NERDTreeMapActivateNode(請參閱 NERDTree-o)。

因此,您必須自己重新映射。要將其僅應用於 NERDTree 窗口,這需要是一個緩衝區本地映射,在打開 NERDTree 側邊欄時觸發:

:autocmd FileType nerdtree nmap <buffer> <CR> go

相關內容