理解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
。
这种方式灵活性更大,而且还可以用下面的方法判断多个前缀。