hsingko


emacs使用笔记

使用emacs+orgmode已经一段时间了,用起来确实很爽,orgmode比起todoist强得多,以后就决定用这个来实践GTD工作法了,这篇文章主要记录一下使用过程中遇到的问题和解决方法。

A.环境

电脑系统我用的是 manjaro + kde, emacs的配置是doom emacs.

B.在手机上使用orgmode

虽然在pc上用orgmode挺爽,但出门的时候就很不方便查看待办事项了,幸好已经手机上也有支持orgmode的app,我选择的是beorg(ios上唯一的选择)。如果用的是macos,那直接用icloud同步就很方便,但是linux上就很麻烦了,还好beorg也支持webdev同步,这里我选择了坚果云。

1. 安装坚果云

aur上有坚果云的包,可以直接用 yay nutstore 进行安装,但是在我的电脑上闪退,没办法我只好从源码安装。

wget https://www.jianguoyun.com/static/exe/installer/nutstore_linux_src_installer.tar.gz
tar zxf nutstore_linux_src_installer.tar.gz
cd nutstore_linux_src_installer && ./configure && make
sudo make install
./runtime_bootstrap

这样安装好的确实正常打开,但是还有些小毛病,不过不影响使用。

2. 设置同步文件夹

可以直接将org文件夹整个进行同步,上传速度还可以接受。

3. 配置webdav

在坚果云-账户信息-安全选项中添加应用,可以得到用户密码。

4. 配置beorg

beorg感觉其实也是个花哨的半成品,在进行webdav同步的时候遇到了许多bug。比如如果之前用了其他远程源进行同步,那么残留下来操作会污染坚果云的webdav,导致各种各样奇葩的同步错误。在设置中log中可以看日志,我的解决方法是直接卸载重装。

5. 正常使用

只要不同时使用pc和手机应该就不会有什么大问题(不过其实我担心的是坚果云的隐私安全,我打算把一些敏感文件进行gpg加密)

C.用orgmode写hugo博客

hugo原生支持org文件,所以可以用org替代markdown,毕竟org支持更丰富的格式。可以直接用 hugo new post/xx.org 生成草稿文件,另外要注意的是可以直接把 Blog/archetypes/default.md 文件复制一份并重命名为 default.org 这样就可以享用hugo的front matter了。

D.中文处理

输入法

emacs-rime 就已经挺好用了,注意规避一些坑就好。

词库问题

直接将fcitx的rime配置文件设置为 rime-user-data-dir 是有问题的,会导致无法使用用户词库——不管是输入还是读取都会有问题。现在我的解决方法是用rime-sync进行同步,可以在 config.el 中设置hook,使rime在emacs启动和关闭的时候自动进行词库同步1

(use-package! rime
  :hook
  ((after-init kill-emacs) . (lambda ()
                               (when (fboundp 'rime-lib-sync-user-data)
                                 (ignore-errors (rime-sync))))))

中英文切换问题

默认切换输入法的方式是 Ctl \ ,但这样显然很麻烦,有两种方法可以让我们更方便地切换。

emacs-rime断言
修改按键映射

表格等宽设置

普通的中文字体和英文并不等宽,这就导致orgmode中的表格看起来都很难看,可以用3种方法解决:一种是使用严格中英文等宽字体,另一种就是用 cnfonts 进行自动校准,最后就是单独设置表格的字体。

1.使用等宽字体

我只知道一种:更纱黑体. 使用这个字体,不需要额外设置就能在大多数情况下实现表格对齐了,很方便。但是在一些情况下还是会出现没对齐的情况,比如使用 ctrl + 放大画面在特定比例下:

2. 使用cnfonts进行自动校准

package.el 中加入 (package! cnfonts) 进行安装。然后在 config.el 加入 (cnfonts-enable) 使其能自动启动。

安装完成之后,输入 Alt+x cnfonts-edit-profile 进行中英文的字体选择,我用cnfonts之后, org-clock-report 中生成的表格也能对齐了。

当然代价就是一篇文章里,英文看上去会很小。

3. 单独设置表格字体

使用cnfonts的理由是操作简单,当然也存在其他的对齐方法,例如单独设置表格的中文字体, valign 正好提供了这样的功能。但是要注意这个工具和cnfonts可能并不兼容,最好只选择其一。

三种方法优劣比较

  • 第一种方法最简单,只要安装字体就行了,但是会有特殊情况无法对齐。另外有些人可能会不习惯这种这种英文字体。
  • cnfonts能分别设置中英文字体,覆盖所有表格对齐情况,但缺点是中英文尺寸相差很大,导致页面看上去不太和谐.
  • valign能自动适配各种表格, 理论 上非常好用。但是我在使用的过程中经常会出现各种奇怪的问题,比如本来能对齐的再次打开就无法对齐,有时甚至连只有英文的表格也无法对齐了;valign还会控制表格符、吞字符,你会怀疑自己的键盘坏了。反正最后我试了一天后就卸载了,懒得折腾。

字体推荐:IBM Plex, PingFangSC

如果选择使用cnfonts,那么就可以自由地选择中英文字体了。英文字体推荐IBM Plex, 中文字体推荐苹方(事实上大部分的中文字体加粗后都比较难看,苹方是其中难得比较顺眼的)。

cnfonts添加字体

cnfonts自带的字体列表里并没有上述字体,但我们可以自己添加想要的字体,它提供了很方便的工具。

  1. M-x cnfonts-edit-profile-without-ui 命令来打开配置文件,里面有默认支持的字体列表,我们只要往里面加想要的字体就好。
  2. M-x cnfonts-insert-fontname 命令可以帮助我们搜索系统中已安装的字体并一键添加,非常方便。

Footnotes