转载自我的Blog,我的一句话经验——Emacs Lisp篇。
-
用
boundp
判断变量是否定义,可以作为一种错误处理方法。 -
用
(eval-when-compile (require 'subr-x))
在编译时引用某功能,避免warning。 -
编译Emacs的时候,老的
elc
文件可能会导致问题,一个简单的方法是删掉它们,在lisp
目录里执行find . -name '*elc' -delete
就可以了。 -
配置文件如果出错会导致Emacs启动失败,用
ignore-errors
把可能出错的括起来就好啦。 -
写Emacs Lisp代码时一定要看The Emacs Lisp Style Guide学习如何写大家都接受的代码。官方也有Tips and Conventions。
-
在自己写的函数里面使用用户输入的参数,比如用不用
C-u
行为不同,可以在调用Emacs函数的时候使用call-interactively
,这样Emacs就会把用户的参数传递过去。示例代码如下
(defun my-bash ()
(interactive)
(let ((shell-file-name "/bin/bash"))
(call-interactively 'shell)))
-
(set-visited-file-name nil)
可以取消buffer和文件的关联,也就是关闭了文件,保留文件内容,可以临时修改文件而不保存。出处。 -
Emacs 25.2之后的版本有一个特性,
use-default-font-for-symbols
默认为t
,表示Emacs使用默认字体来显示符号,用set-fontset-font
单独设置符号的字体实效,如果改为nil
就恢复了原来的行为,可以手动设置符号的字体。邮件列表里的介绍。 -
Tramp最好默认
scp
方法(Windows用scpx
),这样文件访问用scp
,快很多,功能不受影响。 -
在ESS中,如果要安装包,选镜像的时候不会弹出窗口,用
library(tcltk)
可以修复这个问题。 -
生成莫尔斯电码:
morse-region
;解码:unmorse-region
。很明显只对英文有效。
...././.-../.-../--- .--/---/.-./.-../-../.-.-.-
- Dired里
w
可以复制文件名,对应的函数是dired-copy-filename-as-kill
。手册里的介绍。
转载过来的直接动力是最后一条经验,Dired里w
复制文件名,这个问题困扰我很久了,今天忍不住搜索了一下,知道了这个功能,觉得没见过有人提到这功能,所以想分享给大家。
突然发现w
的用法在几天前被人提起了。我不认为这是巧合,这是命运
我还有很多奇妙的小技巧哦
我的一句话经验——软件篇、一句话系列——冷知识篇。Emacs小技巧栏目下也有不少小技巧。
希望大家也分享自己觉得稀罕的小技巧