Sha*_*nce 1 keyboard emacs elisp
在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 "))
Run Code Online (Sandbox Code Playgroud)
对于单个字母控制字符,必须在向量中使用字符常量:
(global-set-key [C-l] 'key-binding-test) ; does not work
(global-set-key [?\C-l] 'key-binding-test) ; works
Run Code Online (Sandbox Code Playgroud)
?\C-l可以在*scratch*缓冲区中进行评估:
?\C-l
12
Run Code Online (Sandbox Code Playgroud)
但要绑定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
Run Code Online (Sandbox Code Playgroud)
当我尝试评估时C-tab:
C-tab ; Debugger entered--Lisp error: (void-variable C-tab)
Run Code Online (Sandbox Code Playgroud)
比较矢量的评估:
[?\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.
Run Code Online (Sandbox Code Playgroud)
[C-tab]是一个向量,请参阅向量手册.在那里你会发现一个向量被认为是不变的评估(即它评估自己).
因此,[C-tab]评估[C-tab]一个元素的向量,即符号C-tab,您可以像这样提取
(aref [C-tab] 0)
Run Code Online (Sandbox Code Playgroud)
添加以回应第一条评论.
另一个向量是:
[some-symbol another (a list of things) 9]
Run Code Online (Sandbox Code Playgroud)
它的长度为4
(length [some-symbol another (a list of things) 9])
Run Code Online (Sandbox Code Playgroud)
它包含两个符号 some-symbol和another,列表(a list of things)和一个整数9.
C-tab是一个符号就像在上面的例子中一样some-symbol,another除非它们的值单元格设置为某个值,否则它们没有任何值.
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |