Jak odróżnić Cm od RETURN?


14

Gdy w trybie javascript próbujesz użyć C-c C-m i, C-c RETpojawia się komunikat o błędzie „ jest niezdefiniowany?”

Co sprawia, że ​​Emacs uważa, że ​​naciskam RET?

Jak mogę właściwie włączyć to klawiszowanie?



1
Ten sam problem, inny punkt wejścia. Myślę, że fajnie byłoby zachować oba pytania dla osób pochodzących z różnych wyszukiwań.
Jordon Biondo


Odpowiedzi:


19

Emacs „myśli”, że C-mto RETdlatego, że „Control M” jest kontrola znaków ASCII „powrót karetki”. Chociaż ten powód jest „historyczny”, Emacs może działać w terminalu, dlatego musi obsługiwać sposób, w jaki terminale nadal działają.

Spróbuj otworzyć okno terminala, wpisując „ ls” i naciskając C-m. Przekonasz się, że to jest interpretowane jako „powrót”, nawet jeśli są nie w Emacsa.

Zobacz Kontrolę na Wikipedii, aby uzyskać szczegółowe informacje na temat kontrolnych postaci.

Aby odróżnić C-mod RETw GUI Emacs, można zmienić C-i, aby C-mw @nispio jest odpowiedź :

(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)

Zobacz też


2
To jest wspaniałe, dziękuję. Teraz mogę mieć C-mmapę prefiksu dla wielu kursorów.
John Wiegley,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.