В GNU Emacs, что такое [C-tab]
? Рассмотрим:В GNU Emacs, что такое `[C-tab]`?
(version)
"GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600)
of 2010-05-08 on G41R2F1"
(defun key-binding-test()
(interactive)
(insert " key-binding-test called "))
Для одного управляющего символа буквы, постоянный символ должен быть использован в векторе:
(global-set-key [C-l] 'key-binding-test) ; does not work
(global-set-key [?\C-l] 'key-binding-test) ; works
?\C-l
может быть оценена в *scratch*
буфера:
?\C-l
12
Однако для связывания C-Tab:
(global-set-key [?\C-tab] 'key-binding-test) ;does not work
; Debugger entered--Lisp error: (invalid-read-syntax "?")
(global-set-key [C-tab] 'key-binding-test) ; works
Когда я пытаюсь evalulate C-tab
хотя:
C-tab ; Debugger entered--Lisp error: (void-variable C-tab)
Сравнивая оценки векторов:
[?\C-l] ; input
[12] ; result
[C-tab] ; input
[C-tab] ; result
(aref [C-tab] 0) ; input
C-tab ; result, but C-tab can not be evaulated further.
И '(isf [C-tab] 0)' возвращает 'C-tab', который я не могу оценить. Поэтому сам по себе я не могу смотреть на «C-tab», но я могу использовать вектор «C-tab», «[C-tab]» с 'global-set-keybinding', чтобы связать мой C -TAB. Является ли 'C-tab' просто символом внутри вектора, а не значением? (Не знаю, что этот вопрос даже означает что-то. –
@ShannonSeverance Да, это символ - как я сказал во втором предложении. Я добавлю еще несколько примеров, чтобы сделать его более ясным. –
@Shannon: Кроме того, '[C -tab] 'является синтаксической стенографией' (вектор 'C-tab) '(аналогично' '(C-tab)' for '(list' C-tab)'). – Gilles