Когда в режиме javascript пытается использовать, C-c C-m iполучить сообщение об ошибке " C-c RETне определено?"
Что заставляет Emacs верить, что я настаиваю RET?
Как я могу правильно сделать эту работу клавиш?
Когда в режиме javascript пытается использовать, C-c C-m iполучить сообщение об ошибке " C-c RETне определено?"
Что заставляет Emacs верить, что я настаиваю RET?
Как я могу правильно сделать эту работу клавиш?
Ответы:
Emacs «думает» , что C-mэто RETпотому , что «Control M» является управляющим символом ASCII «возврат каретки». Несмотря на то, что эта причина «историческая», Emacs может работать в терминале, и поэтому он должен поддерживать работу терминалов по- прежнему .
Попробуйте открыть окно терминала, набрав " ls" и нажав C-m. Вы увидите, что это интерпретируется как «возврат», даже если вы не в Emacs.
См. Контрольный символ в Википедии для получения подробной информации о контрольных символах.
Для того, чтобы отличить C-mот RETв GUI Emacs, можно было бы изменить , C-iчтобы C-mв @nispio «s ответ :
(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)
Смотрите также
Как отличить Ci от TAB? , что очень тесно связано.
Как связать Ci в отличие от TAB? и этот ответ в частности.
C-mв качестве префикса карту для нескольких курсоров.