理解Emacs lisp里的(interactive)
以前对(interactive)
理解不深,只知道给函数加这个表示它可以被交互调用,但今天为了实现在Emacs里操作Hexo,借鉴了一下Magit的代码,发现原来里面的道道真不少,简单写写。
1 | (defun get-dir (dir) |
上面的定义的函数有三种调用方式:
- 在Lisp程序里调用,比如
(get-dir "/tmp")
。 - 交互式调用,比如
M-x get-dir
。 - 带参数交互式调用,比如
C-u M-x get-dir
。
这种方式灵活性更大,而且还可以用下面的方法判断多个前缀。
1 | (if (> (prefix-numeric-value current-prefix-arg) 4) |
感叹 学东西切忌眼高手低,以为会了,一写就不行了,好在我还是实现出了想要的功能,改天发出来。
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:理解Emacs lisp里的(interactive)
文章作者:Chris
发布时间:2015-01-26
最后更新:2022-03-23
原始链接:https://chriszheng.science/2015/01/26/Understand-interactive-in-Emacs-lisp/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享