Emacs 26马上要发布了,这是一个偶数版本,带来了许多新特性。从用户特的角度,我觉得线程支持和原生行号是最重要的两个特性。当然Emacs 26的新特性非常多,下面我简单介绍我觉得有用的特性。

线程支持

重要性无须多讲。随便上一段测试代码

1
2
3
4
5
6
(make-thread (lambda ()
(dotimes (n 10000000)
(thread-yield)
(when (= (% n 10000) 0)
(message "%s" n)))
(message "done")))

代码是无意义的,就是输出数字,但这段代码不会让Emacs失去响应是靠了线程支持。线程的原理和用法我道行还浅,就不解释了。

M-&可以在程序有输出时才显示窗口

这一特性通过async-shell-command-display-buffer控制,默认是t,立即显示buffer,这是原来的行为,设置为nil就实现了延迟显示的功能,在执行的程序有输出时才弹出buffer,这样智能了很多。

一个测试的命令:M-& sleep 3 && echo 蛤 RET

原生行号

请看我写的介绍。

Emacs现在支持原生的行号显示

原生行号是一个简单的功能,效果却很不错。

连接局部变量

连接局部变量(Connection Local Variables)实现了不同的连接使用不同配置的功能,让Tramp在Windows上的配置不那么「脏」。关于连接局部变量在Tramp的配置实例请看我之前的分享

优雅的用Tramp从MS-Windows连接到类UNIX系统