
Ich versuche, die Tasten von Nerdtree so neu zuzuordnen, dass <cr>
eine Datei geöffnet wird, der Cursor aber im Nerdtree-Fenster bleibt. Nerdtree verfügt standardmäßig über diese Funktion und kann mit der g + o
Tastenzuordnung ausgelöst werden. Ich möchte diese Zuordnung nur, wenn ich in Nerdtree bin.
Soweit ich die Nerdtree-Dokumente verstehe, sind die Funktionen, die diese Zuordnung aufruft, NERDTree-go
die Abkürzung für'g' + NERDTreeMapActivateNode
Dies habe ich in meinem vim rc anhand einer Kombination aus NerdTree-Dokumenten und Lösungen für ähnliche Fragen versucht.
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
Es gibt auch eine API-Methode, die meiner Meinung nach funktionieren sollte, aber a) scheint es, als ob das mit einer einfachen Neuzuordnung einfach zu bewerkstelligen wäre und b) ich kann nicht herausfinden, wie ich sie einrichten soll. Ich habe es geschafft, sie zu laden, aber ich hatte nur Folgendes in der Vimscript-Datei, was einen Fehler verursachte:
NERDTreeAddKeyMap({
'key': '<cr>',
'callback': 'NERDTree-go',
'scope': 'FileNode',
'overide': '1'
})
Antwort1
NERDTree wird normalerweise über Variablen konfiguriert g:NERDTreeMap...
; leider gibt es keine separate Map-Option für go
. Von :help NERDTree-go
:
Die Tastenkombination für diese Zuordnung ist immer „g“ + NERDTreeMapActivateNode (siehe NERDTree-o).
Sie müssen die Neuzuordnung also selbst vornehmen. Um dies nur auf das NERDTree-Fenster anzuwenden, muss es sich um eine pufferlokale Zuordnung handeln, die beim Öffnen der NERDTree-Seitenleiste ausgelöst wird:
:autocmd FileType nerdtree nmap <buffer> <CR> go