Vim NERDTree | Neu zuordnen ‚' zu 'go' | Datei öffnen, aber im NerdTree-Fenster bleiben

Vim NERDTree | Neu zuordnen ‚' zu 'go' | Datei öffnen, aber im NerdTree-Fenster bleiben

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 + oTastenzuordnung 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-godie 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

verwandte Informationen