何为Ctrol Code和Escape sequence code?
这里有几篇很不错的讲解Text-Terminals on Linux以及Linux Console Codes
基本这是一套沿用多年, 对按键组合编码的方案. 简单说来, Escape Sequence Code就是讲一个按键组合变成以\033(键盘上得Esc键)打头的一串字符. 比如up \033[A down \033[B right \033[C left \033[D shift+up \033[1;2A shift+down \033[1;2B shift+right \033[1;2C shift+left \033[1;2D meta+up \033[1;4A meta+down \033[1;4B meta+right \033[1;4C meta+left \033[1;4D ctrl+up \033[1;5A ctrl+down \033[1;5B ctrl+right \033[1;5C ctrl+left \033[1;5D不难看出其中的一些个规律 (Alt: 1, Ctrl: 2, Shift: 4, ...). 更多的code可以参考: Key Codes以及 xterm code:
如何得到一个按键(或者按键组合)当前对应的Escape Sequence Code
在MacOS的terminal里可以很方便的
Keystroke to Type Expected Output (for VT220 mapping) ctrl-V backspace ^? ctrl-V delete ^[[3~ ctrl-V ctrl-H ^H
或者使用sed命令
$ sed -n l在Linux的terminal下, 运行xev, 桌面角落里会出现一个小对话框。 同时terminal里会输出当前的事件, 比如按下了哪个键,松开了哪个键, 进而可以获得这些键的code
在Emacs里如何使用键映射(keymap)
这是我写的一篇笔记Mac OS Terminal中设置Emacs热键http://blog.csdn.net/joans123/article/details/7562212
Mastering Key Bindings In Emacs
No comments:
Post a Comment