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自带的字体列表里并没有上述字体,但我们可以自己添加想要的字体,它提供了很方便的工具。
M-x cnfonts-edit-profile-without-ui
命令来打开配置文件,里面有默认支持的字体列表,我们只要往里面加想要的字体就好。M-x cnfonts-insert-fontname
命令可以帮助我们搜索系统中已安装的字体并一键添加,非常方便。