Emacs中的键盘宏

发表于:2007-07-01来源:作者:点击数: 标签:
这是我的关于如何在Emacs中让你的手指少动几次的小技巧--使用Emacs中的键盘宏(keyboardmacros)。在你编辑任何文件时(如C源程序时)创建一个键盘宏首先键入`C-x(@#,当小缓冲器显示`Definingkbdmacro@#时,键入任何你想自动录入的字符。例如你想录入的如下: in
这是我的关于如何在Emacs中让你的手指少动几次的小技巧--使用Emacs中的键盘宏(keyboardmacros)。在你编辑任何文件时(如C源程序时)创建一个键盘宏首先键入`C-x(@#,当小缓冲器显示`Definingkbdmacro@#时,键入任何你想自动录入的字符。例如你想录入的如下:

  intmain(intargc,char**argv)
   {

  当你结束录入时键入:`C-x)@#,emacs将显示`Keyboardmacrodefined@#。现在你必须给你的宏命名,以便你以后调用此宏,键入:`M-xname-last-kbd-macro@#时,会提示输入宏名。在我们的例子中,就叫做`main-type@#之类的吧。现在打开你的.emacs文件,移到文件尾部,键入:`M-xinsert-kbd-macro@#,当它问你插入宏的名字时,键入你上次取的名字。此时emacs就会自动插入生成宏的代码。

现在就可以使用`M-x<宏名>@#来调用你的宏了。不过好象使用起来并不如预想的好,因为使用宏是为了减少你的击键。不过这个问题可以用定义键盘(keyboardmapping)来解决。下一步是把此宏定义到一个功能键上。

依你是否需要此宏用于所有模式,你可以使用全程设置键(global-set-key)或定义键(define-key)。

下面是一个全程设置键的例子,需要你把它加入到..emacs的尾部。
   (global-set-key"\C-cm"@#main-type)

如此,以后你调用emacs时,只要你键入“C-cm”时,整个代码(notreally,justthisoneline)就会显现。请注意不能使用已定义键。最合适组合键是ControlC+.

如果你只希望此宏在C模式(clearcase/" target="_blank" >cc-mode)时使用,在你的c-mode-common-hook中键入如下:

(define-keyc-mode-base-map"\C-cm"@#main-type)

在第一种模式中的问题是你只有有限的键用来定义,很快就会用完。而且,当你编辑一个html文件时,你不会不想到在emacs中如上例喷出@#intmain@#的方法。

附?给老手:应该指出的是我只是emacs的新手,到目前我仅仅使用了六个月。如上有误请不吝指教。

资料来源:Linux公报中文版
(有话要说?请给我们来信)

原文转自:http://www.ltesting.net