Emacs 25.3和Enriched mode——杂谈所见即所得和标记语言
Emacs 25.3发布了,这个版本只是为了修复Enriched mode中允许执行任意指令的Bug。这个Bug和这个修复版本没有什么好说的,就是一个设计上的漏洞,允许在文件中嵌入和执行Lisp语句,其实其他的模式也有类似的设计,但这个Enriched mode实在是古老和naïve,根本没有考虑安全性。既然Enriched mode又火了一把(存在了18年的漏洞,影响千百万用户……),想说说Enriched mode以及其背后的所见即所得和标记语言之争。
Enriched mode与所见即所得
正如上面说的,Enriched mode古老而幼稚,但人家出身还不错哟,实现的是一个国际化的标准RFC 1563,具体来说,是实现了一种简单化的支持所见即所得编辑的文件格式。今天的Bug也是为了实现功能而引入的,因为要在文件中更改高级的格式,如颜色,上下标等,必须要用Lisp来扩展,可以执行Lisp代码自然把危险引入了系统中。这背后的哲学就是所见即所得(WYSIWYG,What You See Is What You Get)的编辑模式。你看到的格式,如颜色、大小和布局就是你期望的,保存后打开,还是原来的样子(为了修复Bug,Enriched mode现在不支持颜色等高级的格式了)。标记语言则不同。
标记语言的特质
标记语言,如Org mode和Markdown,格式以一些符号标记,如*
等保存在文件中,也就是说,你期望的效果是没法实时看到(如果你非要看,可以借助预览的手段,但这与标记语言的初衷违背)。这样设计的优点是
- 兼容性好
- 实现简单
- 专注内容
主要的缺点就是不能实时预览。而所见即所得的有缺点正好和标记语言的相反,实现复杂,但更易于使用。
说到这里,需要插一句,数年前,RMS曾经期望Emacs成为一个所见即所得的编辑器,但讨论了一月左右,没有下文了。实现的困难以及目标用户数量过少是失败的主要原因,Enriched mode在当年就是向这方面发展的一个尝试。
另外一个圣战
在编辑领域,标记语言和所见即所得的战争发生在LaTeX和MS Word之间,它们俩分别代表了两种操作模式,二者孰优孰劣甚至有研究论文发表。对于用户而言,适合的就是最好的,不是么?
延伸阅读
另外,我以前写过Markdown和Org-mode的比较,算本文的一个延伸阅读。
本文被我转载到Emacs China社区,引起了大家的讨论,有不少的回复,还部分解决了我上面文章中提出的Org mode无法良好处理化学名的问题。能生产一个话题我非常高兴,接着各位大神的话再说几句我的观点
-
标记语言的一个功能是方便作者快速写作,提高「文字→出版」的效率。这点做不好,不能算「好」的标记语言。
-
再次强调,适合的才是最好的。我不喜欢Org mode,可能是因为它不适合我,所以我在上面说了一些负面的评论。我想说,如果Org或别的什么工具不适合你,换个适合的就好。
-
内容和样式分离可以提高写作效率,一定要善于使用,标记语言也是为此而生的。
-
Emacs的用户不大喜欢所见即所得的方式,这点也就没有引起什么讨论。但不能就此轻视它,因为很多人对于Markdown实时渲染的需求,不就可以用所见即所得编辑来解决么?
-
再次感谢各位的阅读和讨论。
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:Emacs 25.3和Enriched mode——杂谈所见即所得和标记语言
文章作者:Chris
发布时间:2017-09-12
最后更新:2022-03-23
原始链接:https://chriszheng.science/2017/09/12/Emacs-25-3-and-Enriched-mode/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享