Wie ordne ich Strg + F8 in vim zu?

562
Mr. Blue

Ich habe versucht, Strg + F8 auf verschiedene Arten abzubilden, aber ich kann es einfach nicht schaffen. Nachdem ich einige Nachforschungen angestellt hatte, stellte ich fest, dass vim nicht alle Terminal-Keycodes unterstützt, und ich muss den Terminal-Keycode einem leeren vim-Keycode (wie F13) zuordnen. Ich folgte dieser Anleitung Schritt für Schritt ohne Erfolg.

Was ich getan habe ist:

  1. Suchen Sie den Schlüsselcode (URxvt) für Strg + F8 mit cat. Das Ergebnis ist: ^ [[19 ^
  2. Die folgenden Zeilen wurden meiner Plugin-Datei hinzugefügt:

set <F13>=^[[1;2B nnoremap <F13> :call foobar

Irgendwelche Vorschläge?

0

1 Antwort auf die Frage

1
Heptite

[Nach dem Test habe ich meinen Kommentar auf eine Antwort übertragen.]

Ihr setBefehl verwendet nicht denselben Wert wie Ihr Scancode. Sie müssen außerdem sicherstellen, dass Sie ein Escape-Zeichen anstelle der beiden Zeichen von ^und verwenden [. Um dies ohne "harte Kodierung" eines Escape-Zeichens zu vereinfachen, würde ich Folgendes verwenden :execute:

:exe "set <F13>=\e[19^" :nnoremap <F13> :echo "It works!"<CR> 
Vielen Dank :). Funktioniert einwandfrei. Ich verstehe jedoch nicht wirklich, was "\ e" bedeutet und warum ": ausführen" funktioniert und ": set" alleine nicht Mr. Blue vor 8 Jahren 0
Da aus historischen Gründen für `: set 'keine Auswertung oder String-Erweiterung verwendet werden kann, umgehen wir dies mit`: execute'. "\ e" in Anführungszeichen ist eine String-Escape-Sequenz, die zu einem echten Escape-Zeichen wird. Heptite vor 8 Jahren 0