首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将$作为emacs中特定键盘宏的别名

如何将$作为emacs中特定键盘宏的别名
EN

Stack Overflow用户
提问于 2014-01-07 18:48:35
回答 1查看 122关注 0票数 1

假设我在emacs (24.2)中定义了一个宏,比如xyz。

我希望将快捷方式$与此宏相关联,即每当我键入$时运行宏xyz。我怎么能做到呢?

我尝试了以下所有方法,但都没有成功:

代码语言:javascript
复制
(global-set-key [$] 'xyz) 
(global-set-key ["$"] 'xyz) 
(global-set-key [?$] 'xyz) 
(global-set-key [s-4] 'xyz)
(global-set-key "$" 'xyz) 
(global-set-key (kbd "$") 'xyz)

(最后三个是由流血的手指、abo-abo和Chris提出的。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-07 20:17:50

从您的注释中可以清楚地看到,您已经定义了一个宏,其中包括使用键$。如果这样做,就不能将宏绑定到$,因为这使得它是递归的--每当您到达宏中的$时,实际上就是再次调用宏。

但是,您可以将要执行的操作定义为elisp函数,然后可以将其绑定到$。如果我们知道您实际使用宏做了什么,我们可能会向您展示如何使用宏。

编辑:这个怎么样:

代码语言:javascript
复制
(global-set-key (kbd "$") #'(lambda () (interactive) (insert " $")))

这应该是可行的,但是lambdas可能有点令人困惑。对于初学者来说,更清楚的是:

代码语言:javascript
复制
(defun my-dollars ()
  "Insert a dollar sign with a space in front."
  (interactive)
  (insert " $"))

(global-set-key (kbd "$") 'my-dollars)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20979407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档