elisp按键序列概念 elisp按键在elisp中有两种表达方式:
1> 字符串 “\C-x1”
2> 列表vector [?\C-x ?1]
函数(kbd keseq-string)返回字符串对应的按键序列(字符串或列表形式)
功能键用 <>表示, 等
keymap基本概念 keymap是一个中lisp内的数据结构,用于绑定多个按键序列到对应的command上
按键序列可以分为两种
1> prefix key 前缀键,如 C-x
2> complete key 完整的按键,如 x, C-k, C-x C-q
定义一个complete key前,需要定义所有需要的prefix key.
一般都会有多个keymap处于激活状态,分类如下 1> global keymap (shared by all buffers)
2> local keymap (通常由major mode设置)
3> zero or many minor keymap(通常有minor mode提供)
local keymap会覆盖global keymap, minor keymap会覆盖local keymap和global-keymap
create keymap and keymap format keymap format
**TODO** 函数(keymapp symbal)用于判断指定symbal是否为keymap create keymap function desc others (make-sparse-keymap &optional prompt create and return a new keymap with no entries the usually keymap you need (make-keymap &optional prompt) create and return a new keymap with char-tables use this if you want bind a lots of keys (copy-keymap keymap) return a copy of keymap, recursive copy sub keymap recursive copy fails on function keymap 新建keymap的两个函数都可选的有一个prompt参数,用于设置menu使用,一般不设置
Jan 3, 2014
2 min read
全局变量 setq
set
常量 t
nil
keyword(:)
(keywordp) (defconst)
局部变量 let let*
(shodow/setq)
buffer local/terminal local
变量命名规范 -hook -function -functions -form -forms -predicate -flag -program -command -switches
Jan 2, 2014
1 min read
buffer基本概念 buffer是一个elisp对象,包含一些必要的属性, 部分属性可以直接通过变量访问,部分属性要通过函数才能访问
buffer一般会关联一个打开的文件,也可不关联
buffer都有一个唯一name属性
buffer-local变量使得可以对不同buffer保存不同的状态等
bufferp函数测试symbal是否为buffer
buffer基本属性 the current buffer buffer name buffer file name buffer modify read-only buffer buffer list buffer操作函数
Jan 2, 2014
1 min read