LWN:让Emacs变得更加“现代”!

关注了就能看到更多这么棒的文章哦~

Toward a "modern" Emacs

By Jonathan Corbet
September 25, 2020
https://lwn.net/Articles/832311/

现在距离 Emacs 社区之前那一场关于如何让 Emacs 编辑器 "再次流行 "的长时间讨论,才过去了几个月。社区正在为 Emacs 28 版本的开发周期做准备。在 8 月 Emacs 27.1 发布后,这场讨论又回来了。这次讨论的主题与上一次有点不一样,这次开发者关心的是如何让 Emacs 这个有着几十年历史的编辑器看起来 "现代 ",从而吸引新用户。

2020 年 5 月的讨论集中在如何让 Emacs 能回到过去拥有的流行程度。很可能现在的 Emacs 用户比过去任何时候都要多,但随着时间的推移,这个编辑器在整个计算机用户群中的份额明显缩小了。目前的讨论有跟上次比起有一个类似但不完全相同的焦点:需要吸引新用户来使用 Emacs。Emacs 在他们心目中是一个普遍认为已经过时的编辑器,并且它的学习曲线很陡,令人恐惧。

A more modern Emacs

最初的帖子是由 "Ergus "在 9 月 6 日发起的,要求考虑对 Emacs 28 版本进行一些修改。不过 Ergus 并没有把重点放在新功能上,而是提议让一些现有的功能更容易使用。

这些主要是 "用户可见 "的改动,这将有利于新用户的第一印象,因为我不明白为什么我们把最好的功能隐藏起来,非要用户学会如何配置(并学会一些 lisp 知识)之后才能享受到。

其中许多建议在接下来的讨论中都引起了不少反响,首先,是认为应该改进 Emacs 的默认主题。具体来说,Ergus 建议默认采用深色主题,"让 Emacs 感觉更现代"。讨论经常提到 Emacs 需要更 "现代(modern) "的外观和感觉,尽管,可以预料到,大家对于 "现代 "的含义存在一些不同的意见。

默认的深色主题可能不会在未来出现,这让人觉得这个世界可能还有希望。但人们似乎普遍认为,Emacs 可以从一个更好的、更集中配置 color theme 的方式中受益,而不是在各种 Elisp package 中写死 color name。因此,可能需要一个合适的 theme engine,那些需要深色主题的人就可以很容易用起来。

尤其是对采用 Solarized color palette(调色板)进行了一些讨论。但正如 Dmitry Gutov 所指出的,Solarized 会带来相当低对比度的体验。看一下这张使用 Solarized 颜色的 Emacs 截图就知道了。

Emacs 另一个不够 "现代 "的地方,似乎与键盘和鼠标的用法(binding)有关。在键盘方面,多数用户已经习惯于通过特定的按键进行某些操作:^X 来剪切选择,^V 来粘贴等等。这些绑定可以通过开启 Cua mode 就能轻松拥有,但新用户往往不知道这个 mode,也不知道如何开启。很多参与者在讨论中表示,这个 mode 应该默认开启。

当然,这将打破大量现有 Emacs 用户的手指记忆,他们不会喜欢这种干扰。或者,正如 Richard Stallman 所说的那样。

改变这些基本的按键绑定来模仿其他这些后出现的编辑器是不可取的。这会让 Emacs 变成一个跟此前不同的编辑器,而我们这些 Emacs 用户永远不会切换来用它。其实是开发这些后来的编辑器的人选择了与 Emacs 不兼容,这很不幸。

不过无论好坏,"后来的这些编辑器 "似乎在这方面已经取得了胜利。Emacs 中的默认按键绑定可能不会在短期内改变,但这并不意味着 Emacs 不能为用户提供一种方法在不需要学习 Lisp 的时候就能获得这些功能。

鼠标的行为也有类似情况;正如一些参与讨论的人所指出的,图形界面用户已经开始期望右键点击会弹出一个包含可用操作的菜单。而在 Emacs 中,点击右键会 mark 一个区域(也就是 selection 这种选中操作),在同一位置上第二次点击会 yank("cut",也就是剪切)被选中的文本内容。许多有经验的 Emacs 用户已经喜欢上了这种行为,但对于新手来说,这种行为是很出乎意料的。按住 Ctrl 键的同时点击鼠标右键,确实会弹出一个跟当前主要 mode 相关的菜单,但这显然不符合新人的期望。还有人说,这个菜单应该包含全局性的操作,而不是只有特定模式的操作。

Stallman 建议提供一个 "reshuffled mode",每次右键直接点击都可以弹出一个上下文菜单,并且菜单中也会包括一些预期的基本编辑命令。他说这样的改动相对容易实现,因为 mouse binding 与其他东西都隔离开了。此外,正如他所指出的,目前的鼠标行为是由 "1990 年左右 X Windows 标准 "衍生出来的,虽然人们不希望仓促行事,但也可能是时候更新一下了。

Discoverability

一般来说,Emacs 拥有新用户可能希望拥有的所有功能(甚至更多),但这些功能可能很难发现和使用。因此,许多提出的改动,都是为了让用户更容易发现这个功能。这对一些 Emacs 开发者来说显然很出乎意料,他们一直认为每个窗口顶部的菜单栏就是用户发现某个功能的简单方法。但显然,Emacs 里面经常会关闭掉菜单栏,正如 Gregory Heytings 所说,"菜单不是'modern'的"。要做到 "modern",应用程序必须将其菜单跟鼠标右键绑定起来,或者最多通过一个按钮提供一个 "汉堡菜单"。

Emacs 当然可以采用这种模式,至少在 menu bar 再次流行起来之前先切换过去。但是,还有其他让功能更易发现的想法也在讨论中。其中之一是在新用户第一次使用编辑器时提供一个 "导览,guided tour" 过程,快速地介绍一下 Emacs 的核心功能。这将是对现有的 tutorial 功能的改进。还有一个关于制作一系列视频的建议,或者只是利用现有的许多视频。Stefan Monnier 建议制作短视频,以符合年轻用户的注意力,"ideally funny and sexy, maybe with a cat"。

比导览更进一步的,是提供某种 "configuration assistant,配置助手",在第一次调用 Emacs 时可以运行。它可以提供导览,但也可以让用户有机会选择以更符合他们期望的方式来配置编辑器。例如,可以启用 Cua 模式,调整鼠标按键功能绑定,选择一个很压抑的暗色主题,而不需要输入哪怕一个小括号(也就是不需要编写 Lisp)。这也许足以帮助许多新用户克服刚接触 Emacs 时的冲击。

还有一个经常被提出的建议是启用 Emacs 中默认不开启的各种模式,事实上,其中有几个模式根本没有随 Emacs 一起提供出来。例如,Ibuffer 普遍被认为优于 Emacs 自带的 buffer list(缓冲区列表)功能,所以很多人认为它应该取代自带的 buffer list。Emacs 的 "undo" 机制比许多其他编辑器提供的功能更强,但它也被认为难以使用。一些用户认为 undo-tree mode 使得 undo 动作更容易了,应该随 Emacs 一起提供,并且默认启用。还有几种模式可以增强编辑器的命令搜索和自动补全能力,包括 Ivy、Helm 和 Ido 等。有人认为(也有人不赞同),其中许多模式提供了更符合当前期望的行为,并让这个功能更容易被新人发现,应该选择其中一种模式并默认打开。

Attracting developers

这些软件包的一个共同问题,就是它们实际上并不是 GNU Emacs 的一部分。如果要改变这一点,往往需要作者将版权签署给自由软件基金会,并不是所有作者都愿意。类似的问题也出现在许多衍生的 Emacs "发行版 "中,例如 spacemacs 或 Doom,它们显然帮助许多用户更容易地开始了使用 Emacs。在这些发行版中的一些想法很可能值得加到 Emacs 中去,但是并没有这样做。Emacs 维护者 Eli Zaretskii 抱怨说,这些发行版的创建者并没有将他们的工作贡献回来。

这引出了一个在此次讨论中并没有真正提出(但应该考虑)的想法,但应该被考虑:让 Emacs 对用户更有吸引力的部分关键,可能是让它的开发社区对贡献者们更有吸引力。在这方面,采用一些更受年轻开发者欢迎的工具可能会有帮助。而且,如果能改变这种集中管理的模式,可能也会有帮助。Emacs 仍然是一个 old-style GNU project,这显然有时会让新的开发者感到不舒服。在未来的几年里,要提高 Emacs 的关注度,需要的不仅仅是新的按键绑定和一些 cat video,而需要注意改善各个层面的体验。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值