沧海遗珠:emacs-document英译中合集

/lujun9972/emacs-document这个棒棒哒repo我竟然没在论坛里见过。今天在知乎上看到 @lujun9972 的一个答(guang)案(gao)才发现的。

另外,@LdBeth 好像在目录和正文里都没有给出原文链接?

原文链接作为注释写进去了,GitHub 不会渲染出来,但是你点 Raw 版本就能看到了。

比如这篇 https://raw.githubusercontent.com/lujun9972/emacs-document/master/calc/emacs-calculator使用说明.org

repo 不错,提一点小小的建议:目前的文档大部分都是一句是一段(可能大家用 visual-line 的比较多),最好能够用 org-fill-paragraphM-q)填充一下,这样在各种浏览方式(包括源码)显示效果比较统一,并且一个额外的好处是 git diff 时显示效果更好,尤其是使用 magit 时。

另一个建议,owner 看到哪篇需要翻译,可以在论坛里招人,人多力量大!

目前我觉得最缺的可能是 elisp 官方文档的翻译 :laughing: ,那个比较系统,博文都是比较碎片的知识。

@lujun9972

文档感觉不是太必要,这个论坛里应该英文阅读都没什么问题,那么译文就只是奉献自己、节约别人阅读这篇文章的时间,不像比如一个流行的开源项目的文档,翻译是刚需,因为英文的话有些人几乎无法阅读。那么这样的话,elisp文档这种没有人会从头到尾看的东东,翻译就事倍功半了。。

确实,不过很多细节问题最后还是求助于文档,而且翻译文档也能加深译者的理解。我之前在写一个 major-mode 的时候就因为 indent function 的问题卡了很久,因为对文档吃不透。就是那个所谓 SMIE,最后不了了之,换了其它方式写的。

我半年前贡献了几篇译文,但是后来因为个人的原因没能继续翻译下去,实在惭愧.

1 个赞

GH 的 Org 要是分行渲染出来的中文之间会有空格,不可避免,不像自己导出 html 可以 hack。建议由贡献者自行决定。

MD 倒是没这问题。

Org, Markdown, HTML 等都一样,一段中文,无论内容或长或短,中间都不能添加换行。正确与否比是否美观、方便更重要。

貌似不是这样的,我又看了一下,GH并不会将相邻的两行重新合并。

这个“正确”是以什么作为标准的?我觉得 Org 只是一种中间格式,只要导出的文档能够不包含额外的换行符就没有问题。而最常用的 pdf 以及 html 导出根本不会有任何问题(即使有问题也很容易修复)。

换行的好处是 git diff 更容易显示改变的地方。还有一个原因促使我换行是因为我放弃 visual-line 了,因为 visual-line 各种小的 issue 让我实在忍受不了了,fill 让我感觉更安心,不会变来变去的。有时候真心觉得 emacs 就是反中文用户的编辑器。

是额外的空格,不是换行,比如这 样。

或许 Diff 时开启 word-granularity differences 会好些:

  • Diff Mode / VC: M-x diff-refine-hunkM-x diff-auto-refine-mode
  • Magit: M-x magit-diff-toggle-refine-hunk 或修改 magit-diff-refine-hunk
1 个赞

我觉得这是两个问题,refine 我也在用。长句的问题在于,如果一行包含1000字,即使只修改一个字,diff 高亮的时候也是将这1000字都高亮了。而如果采用 fill,比如 fill-column 采用 80,那么高亮的时候只会显示包含被修改字在内 40 个汉字。

简单来说,就是如果用 visual-line 的话,git 是以段作为单位的;如果用 fill 的话,git 是以行作为单位的。我觉得 git 是为行设计的,行太长的话就打败了 git 的意义了。这就好比我只修改了函数体内的一个变量,结果你显示我整个函数都被改变了。。。所以个人认为 fill 是更自然的选择。当然这可能更多是个人喜好的问题。

这个我同意, 我一般都是手动fill,因为像org这种轻量级的标记语言, 源代码容易读本身就是优势, 至于导出html多一个空格,我感觉无关紧要,简单的设置就可以处理。。。。

又是中文下的特殊问题……

reStructuredText 有 \ 脱掉这个额外空格,大家快转 rst 吧。:laughing:

可惜 reStructuredText 没有 org-mode 那样牛的集成环境。。。。。 为了一颗豆芽菜而放弃而放弃两座大山,不划算

其实英文用户也要面对这个问题,软分行(visual-line)还是硬分行(fill-paragraph),我在Github上所见到的英文用户是以硬分行居多(因为GIT)。

中文用户在作出选择时还要考虑其它因素,比如硬分行时导出 html 时多出的空格(容易处理),软分行时由于中英文不等宽造成的行间移动光标时各种不舒服(我的个人感受,不一定适用别人)等等。

@tumashu org-mode 确实厉害,不过并不是完全不可替代,现在有一些插件可以实现 org-mode 的部分功能。我曾经学习过 org-mode,但种种原因并没有坚持用下来。

添加额外空格的事,也许可以当 bug 向 org-mode 作者提 issue。

@et2010 中英文不等宽这事,考虑到 emacs/vim 的主要用户群体,我比较偏向于 vim 的处理方法:直接定义中文宽度等于英文的两倍,简单粗暴。

Visual Line Mode / Word Wrap 不支持中文(CJK),中文和英文(Latin)的断行规则不同。

1 个赞

看起来 VSCode 和 Atom 的 Word Wrap 支持中文:

似乎判断何时换行不复杂——中文字符之间可以换行、有些标点前后不可换行:

不过 Emacs 的 Word Wrap 是在 C 层面实现的,不清楚实现的难度。

1 个赞

也试了一下搞一个 repo 放置文档,然后发现 github 不能渲染 org-mode 中的 latex,放弃。。。