把这些Emacs Lisp经验整理到一起,方便读者,方便自己。

一句话系列的另外两篇:我的一句话经验——软件篇一句话系列——冷知识篇Emacs小技巧栏目下也有不少小技巧。

  1. boundp判断变量是否定义,可以作为一种错误处理方法。

  2. (eval-when-compile (require 'subr-x))在编译时引用某功能,避免warning。

  3. 编译Emacs的时候,老的elc文件可能会导致问题,一个简单的方法是删掉它们,在lisp目录里执行find . -name '*elc' -delete就可以了。

  4. 配置文件如果出错会导致Emacs启动失败,用ignore-errors把可能出错的括起来就好啦。

  5. 写Emacs Lisp代码时一定要看The Emacs Lisp Style Guide学习如何写大家都接受的代码。官方也有Tips and Conventions

  6. 在自己写的函数里面使用用户输入的参数,比如用不用C-u行为不同,可以在调用Emacs函数的时候使用call-interactively,这样Emacs就会把用户的参数传递过去。示例代码如下

1
2
3
4
(defun my-bash ()
(interactive)
(let ((shell-file-name "/bin/bash"))
(call-interactively 'shell)))
  1. (set-visited-file-name nil)可以取消buffer和文件的关联,也就是关闭了文件,保留文件内容,可以临时修改文件而不保存。出处