Ich versuche, Emacs in einem Terminal auszuführen. Ich habe in den Terminal-Einstellungen die Option "Option als Meta verwenden" aktiviert und es funktioniert zu 95% richtig.
Die Tastenfolge ctrl- / (oder in der Emacs-Notation C- /) ist "rückgängig". Diese Tastenfolge bewirkt nur, dass das Terminal eine Glocke klingelt. Wie behebe ich das?
Antworten:
Steuerung-
/
ist nicht Teil des Satzes von Standardsteuercodes . Es ist in vielen Terminalemulationen nicht direkt als Tastendruck darstellbar. Ein solcher Tastendruck ist nur in bestimmten plattformspezifischen „Scancode-Modi“ oder „GUI-Modus“ richtig erkennbar (wobei die API genau angibt, welche Tasten und Modifikatoren verwendet werden). Ihr Terminal-Emulator piept, weil es sich tatsächlich um einen ungültigen Tastendruck handelt.Die Standard-Steuercodes beziehen sich nur auf „Control“ -Versionen von
@
A
-Z
[\]^_
(ASCII 0 - 31) und?
(ASCII 127)In den meisten Terminal-Emulator-Programmen, die mit den meisten US-Tastaturlayouts ausgeführt werden, müssen Sie möglicherweise drücken Shift, um einige der „Steuercodes“ zu generieren:
@
ist Shift2)^
ist Shift6)_
ist Shift-)?
ist Shift/); C-? wird normalerweise entweder von Backspace(bei Apple-Tastaturen der Schlüssel mit der Bezeichnung „Löschen“ ohne das zusätzliche Symbol ⌦) oder (bei Apple-Tastaturen der Schlüssel mit ⌦) Deletegeneriert.In tty-basierten Emacs können Sie normalerweise C-_
undo
anstelle von C- / verwenden.quelle
Ctrl- / sendet 0x1f, was seit den Tagen von VT102 Ctrl-_ entspricht. Es gibt viele VT100-Emulatoren, aber es handelt sich tatsächlich um VT102-Emulatoren. iTerm2 funktioniert, weil es diesem Verhalten folgt.
Nur Emulatoren, die genau der VT100-Spezifikation entsprechen, können keine Strg- / Befehle senden. Ich glaube, die Terminal-App ist eine davon.
VT100 maskiert 2 höchstwertige Bits von 7-Bit-ASCII, wenn die Steuertaste gedrückt wird. / ist 0x2f, o ist 0x6f. Wenn die 2 Bits maskiert sind, sind sie beide 0x0f. VT100 kann Ctrl-o aber nicht Ctrl- / senden.
quelle