Ich versuche, den AltSchlüssel folgendermaßen zuzuordnen :
:map <A-j> j
:map <A-k> k
aber es funktioniert nicht (klingelt Alt + j/ Alt + k).
Was ich vermisse
Ich verwende Terminal unter OSX, das gleiche passiert unter Remote Linux.
Auf Ctrl + v, Alt + jhabe, ich habe: ?~H~F
( ∆
wenn encoding=utf-8
).
Auf Ctrl + v, Alt + khabe, ich habe: ?~Z
( ˚
wenn encoding=utf-8
).
Das Ausführen von vim ohne plugins ( -u NONE
) macht keinen Unterschied.
key-bindings
terminal
Kenorb
quelle
quelle
Alt
(drücken, nicht halten) und dannj
? Mitxterm
zumindest ich einstellen müssen ,metaSendsEscape
umtrue
diese Sequenzen zur Arbeit zu kommen ... ich weiß nicht , ob Sie das gleiche Problem haben, und ich verwende OSX nicht so kann ich nicht testen ...Alt
, Loslassen, dannj
oder eine andere Taste funktioniert wie gewohnt . Ich habe die Option 'Option als Metaschlüssel verwenden' geprüft und gefunden. Sie ist aktiviert und funktioniert jetzt. Die EinstellungmetaSendsEscape
hat also den Trick gemacht, danke.Antworten:
So mache ich das unter Linux oder Cygwin:
Überprüfen Sie zuerst, welche Zeichen von Ihrem Terminal gesendet werden, wenn Sie ALT+ drücken J:
Um dies zu tun, gehe ich zur Konsole und starte
sed -n l
(du kannst es auch benutzencat
). Dann drücke ich ALT+ Jund sehe, dass die Zeichen auf dem Bildschirm sind^[j
.Ich ersetze
^[
mit\e
(weil das von meinem Terminal gesendet wird, wenn ich drücke esc) und die letzte Zeichenfolge ist für mich\ej
.Dann schreibe ich es an meine
.vimrc
:Und das Mapping funktioniert.
quelle
:set <M-j>=\ej
Teil nicht finden . Wonach soll ich suchen?:help :set-termcap
Mit Hilfe von Carpetsmoker wurde das Terminal anscheinend nicht so konfiguriert, dass "Alt / Option als Metataste verwenden" (dies ist besonders bei GUI-Terminals üblich).
Für Terminal unter OSX befindet es sich unter Einstellungen -> Einstellungen -> Registerkarte Tastatur -> Option als Metataste verwenden . Check: Wie kann ich das Terminal so einstellen, dass die Option als Metaschlüssel verwendet wird? ( Außenseiter ).
Aktivieren Sie für XTerm Folgendes: Konfigurieren von XTerm als Standard für Meta-Sends-Escape :
Dann Standardzuordnungen mit AltSchlüssel wie:
funktioniert gut.
Weitere Informationen finden Sie :
:h :map-alt-keys
.quelle
:h :map-alt-keys
als eine weitere Informationsquelle betrachtenÄhnlich wie Kossaks Antwort, aber ein bisschen einfacher, indem man buchstäbliche Tastendrücke abbildet.
Entweder nach dem Drücken von im normalen Modus :oder nach dem Einfügen in Ihren
.vimrc
, ordnen Sie die Eingabe direkt zu, indem Sie das Mapping starten:Drücken Sie dann Ctrl+ und Vdann die Taste, um aufzunehmen, z . B. Alt+ ←. Dies wird etwa so aussehen:
Aber jedes
^[
ist ein einzelnes, wörtliches Escape-Zeichen, und die Hervorhebung der Syntax sollte dies zeigen. Ersetzen Sie das / die wörtliche (n) Escape (s) durch den Text<Esc>
und fügen Sie den gewünschten Befehl hinzu:Ich weiß, dass OP Mapping Alt+ Buchstaben war, aber ich habe Pfeile verwendet, um zu zeigen, wie dies für etwas getan wird, das möglicherweise nicht standardmäßig zugeordnet ist.
quelle
Dies funktioniert für mich auf Ubuntu 16.04 xfce Terminal (und alacritty Rust Terminal)
Setze Ultisnip Snippet Trigger auf
Meta-/
(genau wie Emacs Snippet)Hier
^[/
tippe ich jetzt vim einIm Einfügemodus
Ctrl-V Alt-/
(
Meta
ist derAlt
Schlüssel auf meiner PC-Tastatur)quelle
Wenn Shows
Control+V
folgen ( tippe das Terminal ein), kannst du es mit diesem kleinen Skript von vim.wikia.com reparieren :ALT-x
^[x
Fügen Sie .vimrc für alle ALT-Tastenzuordnungen hinzu.
quelle