现在的位置: 首页 > 综合 > 正文

Emacs 键映射(keymap)

2013年11月06日 ⁄ 综合 ⁄ 共 2127字 ⁄ 字号 评论关闭

Emacs 键映射(keymap)
   一个键序列是由一些键值单元组成的。键值包括字符,功能键和鼠标按钮以及所有你能发送到电脑的输入。 在elisp中键序列要么是字符串,要么就是向量。 控制字符以 "\C-" 串打头,Meta字符以"\M-"打头。 另外<tab>,<ret>,<esc>,<del>这些事件与"\t", "\r", "\e"和"\d"相对应。 键序列和函数绑定记录在keymap的结构体当中。

   全局的keymap是最重要的键映射,因为它总是生效的。全局的键映射在基础模式定义键。大部分的定义在大部分主模式中是通用的。 在每个主或者从模式可以拥有自己的键映射来覆盖全局键映射的一些绑定键,称之为本地keymap.
   键盘映射可以继承另一个键盘映射, 使用 set-keymap-parent 函数.
   elisp中包含一些标准的前缀键keymap:
    esc-map      --- <ESC>前缀
    help-map       --- C-h 前缀
    mode-specific-map --- C-c前缀
    ctl-x-map    --- C-x前缀
    mule-keymap     --- C-x <RET> 前缀
    ctl-x-4-map    --- C-x 4 前缀
    ctl-x-5-map    --- C-x 5 前缀
    2C-mode-map    --- C-x 6 前缀
    vc-prefix-map    --- C-x v 前缀的keymap
    goto-map    --- M-g 前缀的keymap
    search-map    --- M-s 前缀
    facemenu-keymap    --- M-o 前缀
    其他C-x @, C-x a i, C-x <ESC> 和 <ESC> <ESC> 前缀的keymap没有指定名字。
   keymap绑定前缀键用来查找跟随前缀键后的事件。
   改变一个键的函数也可以通过如下方式:
    (define my-mode-map [remap kill-line] 'my-kill-line)

kbd            转换字符串到键序列
keymapp            查看变量是否是keymap类型
make-keymap        生成向量类型的keymap
make-sparse-keymap    生成稀疏keymap
set-keymap-parent    设置keymap继承另一个keymap.
copy-keymap        拷贝一个keymap
define-key        绑定keymap的键和函数
key-binding        当前活动的keymap中查找相应key对应的函数
local-key-binding    返回当前本地keymap中的绑定函数
local-set-key        设置当前本地keymap的键绑定
local-unset-key        取消当前本地keymap中的键绑定
global-key-binding    返回当前全局键绑定的函数
global-set-key        设置全局keymap键绑定
global-unset-key    取消全局keymap键绑定
lookup-key        查找keymap中的键绑定
define-prefix-command    定一个前缀命令
use-global-map        指定keymap作为全局keymap
use-local-map        指定keymap作为本地keymap    
accessible-keymap    返回一个可达的keymap列表
map-keymap        遍历键绑定,调用函数
key-description
single-key-description
text-char-description
where-is-internal    返回与函数绑定的键序列列表
where-is        打印与函数绑定的键序列
describe-bindings    在*help*中显示当前的键绑定
current-global-map        返回当前全局的keymap
current-local-map        返回当前本地的keymap
current-active-maps        返回当前活动的keymap
current-minor-mode-map        返回minor模式的keymap
变量:
global-map            默认的全局keymap
emulation-mode-map-alist     仿真模式时的keymap列表
minor-mode-map-alist        描述keymap是否生效的列表
minor-mode-overriding-map-alist    允许major模式的键绑定覆盖部分minor模式
overriding-local-map        非nil,用来替代buffer本地的keymap
overriding-terminal-local-map    非nil,用来替代overriding-local-map
special-event-map        保存特殊事件的keymap

抱歉!评论已关闭.