Emacs 之吾观

elisp

#1
以下内容,仅代表个人此时的观点,且对一切不同意见表示尊重 :)

Markdown

Markdown 的通用性在于,你可以很轻松的在记事本中写出它的格式,Org Mode 却只能在 Emacs 中发挥出最大的威力。这是不是 Markdown 相对自由的地方……

我的 Emacs 日常

工作之余,会使用 Org Mode 写博客,我是用的是 Hexo 静态博客生成器,然而,它并原生支持 .org 文件的解析和渲染,倒是有一个插件 hexo-render-org 可以实现解析,但是也存在一些闹心的小毛病 :thinking:

本着自己动手,丰衣足食的态度,自己鼓捣了一个插件 org2md ,Hmm…,代码质量就不提了,毕竟就我的 elisp 水平,能最终实现想要的功能已经是谢天谢地了 :joy: 。实质上,还是先把 .org 转换成 .md ,加上 Hexo 用来识别的标头。插件是依赖于 ox-gfm 的,省了不少事。实现效果差强人意吧,不足之处在于,当你在 .org 文件中插入代码块,经过转换之后, Hexo 博客渲染出来的效果,缩进是混乱的。如果仅是纯文本的博客当然不用介怀,但不得不插入代码块的时候,就显得难以接受了,特别是,当你插入的是 python 代码块。问题当然不是出现在 Hexo 上,因为直接书写的 .md 文件就不存在这个问题。

Org Mode 最新版的语法了解不多,目前版本 <s <q 等代码块语法的直接展示,不如 Markdown 看起来简洁。另一方面,只有在 Emacs 中编辑 .org 文件,才能发挥其最大的优势和威力,然而,许多人并不使用 Emacs ,这就又让直接 .org 文件显得很鸡肋。所以说, Markdown 能够大行其道,并不是没有道理的。

Emacs 的魅力

Emacs 最吸引我的地方在于,它的自由和可控,其实呢,自由度和可控度是依赖于使用者的熟悉程度和水平的, Steve Purcell 和陈斌能把 Emacs 用出花儿来,不代表我也可以 :sweat_smile: 。如果,最终目标是把 Emacs 作为生产力工具来用,那它丰富的插件绝对是一个优势。然而……

工作中,Emacs 并不是我的主力编辑器,大部分情况我使用 VScode 。并不是我不想使用 Emacs ,而是真的有一些个人认为的痛点问题,个人水平实在不足以解决,比如说糟心的 缩进 问题。

终端界面下, Emacs 对于我来说是必不可少的,哪怕备受缩进问题的困扰。直到 VScode 推出了一个可以远程连接服务器,直接编辑服务器端文件的插件,试了一下,效果相当令人满意。不得不说, VScode 给了难以言尽的惊喜。

使用和学习 Emacs 最大的收获,其实并不在与它给我带来了多大的生产力,而是一种思想和理念的升华。正如陈斌的 一年之内成为 Emacs 高手 中的论点,它让我明白,一切是可控的,所有的 GUI 都有对应的 CMD 。

明天的 Emacs 之旅

我仍然会使用 Emacs,但不会如我之前那样,我不会再使用 Evil,会减少使用 Org Mode,我会尽量使用原生的 Emacs 操作方式,这是鉴于, Emacs 不作为主力编辑器而言的。

!!事实证明,我抵抗的了 Evil ,抵抗不了自己的小手指。。。:joy:

会新建一份 Emacs 的配置,配置中的每一条命令都尽量做到 知其然,知其所以然 ,也会使用插件,但不会仅仅止于使用插件,要注意阅读插件的源码,了解插件解决的主要问题,多问几个为什么原生的 Emacs 没有集成。

这一点,其实和陈斌的先用起来的观点并不相悖,侧重点不同而已。陈斌重在用,我则是通过学习这些,加强对 Emacs 的使用,和对 Elisp 的了解而已。

未结之结

感谢 Richard Stallman ,感谢 GNU,感谢社区。


#2

用过 org-md-export-to-markdown,代码块转换似乎没出过这个问题。


#3

代码缩进的问题,我转到 hugo 后完美解决了,而hugo支持org语法 。


#4

hugo 支持 org 语法?!我去,那我也要迁移到 hugo :joy:


#5

也不全是混乱,针对于某些第三方库的语法,如 VUE


#6

应该是Richard,哈哈哈


#7

捣腾了一段时间的hexo后,我决定在gayhub的issue里面写了。。


#8

:sweat_smile: 手滑了 手滑了


#9

gayhub 可还行,哈哈


#10

用 ox-hugo。


#11

这周末捣腾一下,顺带写一个 github 风格的主题 :face_with_thermometer:


#12

都是浮云,gayhub issue可以了


#13

山人,求解决代码缩进的解决办法,正在配置ox-hugo,现在的情况是所有src-block里的代码全部没有缩进,全部都顶着头。有什么选项设置吗?


#14
;; Permanently force Emacs to indent with spaces, never with TABs
(setq-default  indent-tabs-mode nil)

先前用 Hexo 的时候, .org 文件转 .md 也有这个问题。现在用 Hugo ,直接用 md 写还是一样。最后发现是 emacs 中的 空格TABS 有差异,加上上述这行配置就可以了。