Wie erhalte ich den Schlüsselnamen, der für die Keymap in vimrc codiert werden soll?

10

In Emacs kann ich drücken Ctrl-h, kum eine Taste zu beschreiben. Ich kann den Schlüsselnamen erhalten, auch wenn er undefiniert ist, z.

C-x <C-M-end> is undefined

So habe ich erfahren, dass der Schlüsselname ist C-x <C-M-end>.

Aber wie können Sie den Schlüsselnamen für Vim erhalten?

Ich möchte eine Keymap für Ctrl-Shift-Vund einrichten Shift-Insert, aber welchen Code muss ich verwenden?

Ist es möglich, den Schlüsselnamen im laufenden Betrieb zu erhalten?

Xiè Jìléi
quelle

Antworten:

2

Der Befehl , der describe-key( Ctrl+ H, K) am nächsten kommt , ist der :mapBefehl. Es werden alle Zuordnungen aufgelistet.

Sie können auch ausführen :map <key name>, müssen dies jedoch <key>mithilfe der in
der Notation angegebenen speziellen Syntax angeben .

Oder Sie können :mapCtrl+ ausprobieren V<key>, wodurch Sie nur die Taste drücken müssen, anstatt die spezielle Syntax verwenden zu müssen.

So zu binden Ctrl+ Shift+ V, versuchen Sie dies:

:map <C-S-v> whatever

oder

:mapCtrl+ V Ctrl+ Shift+V whatever

Stellen Sie jedoch sicher, dass Ihr Terminalprogramm dies nicht bereits für etwas Besonderes wie Einfügen verwendet, da Vim sonst den Tastendruck nie sieht.

Siehe auch Map-Alt-Schlüssel , um zu erklären, ob Ihr AltSchlüssel als <M-x>oder geschrieben werden soll <A-x>.

Mikel
quelle
Es ist Strg-h, k, nicht Strg-X, k, was bedeutet, Puffer zu töten.
Xiè Jìléi
Entschuldigung, das wurde behoben.
Mikel
Ich bin nicht sicher, ob Moder Awird zugeordnet Alt. Aber <M-h>, <M-l>einfach nicht funktionieren. Ich weiß nicht, ob der Schlüsselname ungültig ist oder die Schlüsselereignisse nicht an Vim gesendet wurden. Kein Protokoll, keine Ahnung.
Xiè Jìléi
Ja, Altist schwierig, da die meisten Terminals senden ESCdann , xwenn Alt+xgedrückt wird, und wie Vim wissen Sie nicht drücken ESCdann x. Funktioniert grundsätzlich Altnur in Gvim.
Mikel
5

Um herauszufinden, was eine Taste oder Tastenkombination in Vim ausgibt, öffne ich normalerweise einen leeren Puffer mit " :enew", gehe in den Einfügemodus, drücke control-vund dann die Taste oder Tastenkombination, die ich identifizieren möchte. Dieser Control-V-Trick kann auch in der Befehlszeile: -command ausgeführt werden, sodass das Definieren von Zuordnungen zum Testen ziemlich einfach ist. Zum Beispiel " :map " control-vund die Tastenkombination " :echo 'it works'".

Heptit
quelle
0

Geben Sie einfach Ctrl+ Von-the-fly und die Tasten ein, die Sie drücken möchten. Wenn Sie das Ergebnis nicht zu erwarten (wie zum Beispiel gefunden haben <c-space>, <c-cr>, <M-i>, ...) es bedeutet nur , Sie vim verwenden und nicht gvim. Die Art und Weise, wie vim die eingegebenen Schlüssel versteht, hängt von der Konfiguration Ihrer Terminals ab. gvim verwendet seine eigenen Definitionen, es gibt also nichts zu konfigurieren.

Luc Hermitte
quelle