记录学习

2008年7月17日星期四

Writing GNU Emacs Extensions Note

全局绑定函数
(global-set-key keysequence command)

字符串中的转义字符是
\
如"\"" "\\"

META-x ==》 M-x(简写形式) ==》 "\M-x"(字符串形式)
CONTROL-x ==》 C-x(简写形式) ==》 "\C-x"(字符串形式)
CONTROL META-x ==》C-M-x(简写形式) ==》 "\C-\M-x"(字符串形式)
有时候,CONTROL-x也会有如下的形式
CONTROL-x ==》 ^x(简写形式) ==》 "\^x"(字符串形式)

(global-set-key "\M-?" help-command)
这个help-command是变量取值,传递给函数global-set-key

防止一个Symbol或者任何一个Lisp的Expression变成取值操作的符号
用一个单引号
如:(global-set-key "\M-?" 'help-command)
取Symbol本身,而不取值

模糊查询
如果只知道某个关键字,去需要查找函数,变量等,需要用到Apropos
语法: M-x Apropos RET 关键字 RET

在使用Emacs的时候,切换窗口用C-x o总觉得不太方便,想要返回上一个窗口的话,窗口一多
就要进行一次循环(鼠标操作除外-_-!),这时候,就像定义2个对应的函数,用来表示向前一个
窗口和向后一个窗口
准备:比较合适的快捷键是 C-x C-p 以及 C-x C-n
但经过 C-h b查看,这2个快捷键已经被使用了,但这2个功能又不是经常使用(几乎不用),所以
覆盖掉也没有大问题,要用的时候再用 M-x 调用函数即可,开始吧

首先,通过 C-h b 查看已有的 C-x o 的绑定信息,确定Command名称
然后定义 C-x C-n,在.emacs中加入以下绑定语句:
(global-set-key "\C-x \C-n" 'other-window)

然后,是向前一个窗口,目前系统中并没有这样的Command,怎么办,自己写一个吧呵呵
我们知道other-window可以接受一个-1的参数表示往前一个窗口,通常要如下( C-u -1 C-x o)达到
下面,定义新的Command
(defun other-window-previous()
"select the privious window"
(interactive)
(other-window -1)
)
********************************************************************
****注意区分Command和Function
****不是所有的Function都是Command,但是所有的Command都是Function
****Command是那些可以由键盘或者 M-x 直接调用的函数
********************************************************************

好了,Function定义完了,evaluating它吧,然后你就可以用 M-x other-window-previous来调用啦

最后,绑定到 C-x C-p上去吧
(global-set-key "\C-x \C-p" 'other-window-previous)

今天就到这里啦,明天继续翻译呵呵,不是原创,向作者致敬

没有评论:

博客归档