Wie kann ich Cm von RETURN unterscheiden?

14

Wenn Sie im Javascript-Modus versuchen C-c C-m i, eine Fehlermeldung zu erhalten, die besagt, dass " C-c RETist undefiniert?"

Was lässt Emacs glauben, dass ich dränge RET?

Wie kann ich diese Tastenkombination richtig ausführen?

user3139545
quelle
2
Mögliches Duplikat von " Strg + i" und "Tab
Drew" unterscheiden
1
Das gleiche Problem, ein anderer Einstiegspunkt, ich denke, es wäre schön, beide Fragen für Leute zu behalten, die aus unterschiedlichen Suchvorgängen stammen.
Jordon Biondo
1
Meta-Frage, ob diese Frage ein Duplikat ist
Gilles 'SO - hör auf, böse zu sein'
1
Mögliches Duplikat von Wie binde ich Ci anders als TAB?
Gilles 'SO- hör auf böse zu sein'

Antworten:

19

Emacs „denkt“ das C-mist , RETweil „Control M“ die ASCII - Steuerzeichen „Wagenrücklauf“ ist. Obwohl dies ein "historischer" Grund ist, kann Emacs in einem Terminal ausgeführt werden und muss daher die Art und Weise unterstützen, in der Terminals noch funktionieren.

Versuchen Sie, ein Terminalfenster zu öffnen, geben Sie " ls" ein und drücken Sie C-m. Sie werden sehen, dass es als "return" interpretiert wird, obwohl Sie nicht in Emacs sind.

Weitere Informationen zu Steuerzeichen finden Sie unter Steuerzeichen in Wikipedia.

Zur Unterscheidung C-mvon RETin einer GUI - Emacs, könnte man ändern , C-ium C-min @nispio ‚s Antwort :

(define-key input-decode-map [?\C-m] [C-m])

;; now we can do this:

(defun my-command ()
  (interactive)
  (message "C-m is not the same as RET any more!"))

(global-set-key (kbd "<C-m>") #'my-command)

Siehe auch

Konstantin
quelle
2
Das ist großartig, danke. Jetzt kann ich C-mals Präfix eine Map für mehrere Cursor haben.
John Wiegley