Emacs中的iA Writer Mode
目录
在切换回Linux之前,我经常在我的Macbook Air上使用iA writer。这是一款优秀的产品,它只做一件事:帮助你专注于自己的想法。 尽管它会将我的文档保存到iCloud(或Dropbox),而且它不能在Linux下工作,我仍然非常喜欢它。
在Linux中,我常用Emacs进行写作。我把所有的笔记放在两个Git仓库中;一个是私有的,另一个是 公开的。任何我记不住的重要的东西都存入一个Markdown文件中。它就像我大脑的硬盘一样。
最近,我想改变我的Emacs配置,让我能在写markdown文件是具有类似的iA Writer的体验。以下是使Emacs看起来像iA Writer的配置过程概要:
- 为
markdown-mode
定义一个模式钩子,这样我们的更改将只作用于markdown文档。 - 在markdown模式下使用不同的字体和大小。
- 内容居中
- 关闭行号
— 增加行间距
让我们分别来看一下这些变化;
writing-mode
我们来定义一个函数,在合适的时候触发它。下面是这个函数的空实现以及一个 markdown-mode
的钩子:
(defun writing-mode ()) (add-hook 'markdown-mode-hook 'writing-mode)
自定义字体
做笔记时使用与众不同的字体系列和字体大小更有意义。我们可以使用与iA Writer相同的字体,因为他们开源了他们的字体。
就我个人而言,我更喜欢系统中现存的“Sans”字体。如果你是一个Linux用户,你可以通过以下方式列出可用字体:
fc-list : family
决定字体后,你就可以设置字体族和大小,像下面这样子:
(defun writing-mode () (interactive) (setq buffer-face-mode-face '(:family "dejavu sans mono" :height 150)) (buffer-face-mode))
您可能想检查变更是否生效了。随便打开一个Markdown文档,运行 writing-mode
然后运行 describe-char
命令查看文档中使用的字体。
居中
我尝试了各种允许内容居中的模式,writing-room 模式 效果最好。我们只要在 writing-mode
被调用时启动它即可:
(defun writing-mode () (interactive) (setq buffer-face-mode-face '(:family "dejavu sans mono" :height 150)) (buffer-face-mode) (writeroom-mode 1))
最终版本
除了上面这些一般性的更改外,我还添加了一些个人设置,如关闭行号、使光标闪烁等。
下面是我的最终版本。(从Github上拷贝):
(defun writing-mode () (interactive) (setq buffer-face-mode-face '(:family "dejavu sans mono" :height 150)) (buffer-face-mode) (linum-mode 0) (writeroom-mode 1) (blink-cursor-mode) (visual-line-mode 1) (setq truncate-lines nil) (setq-default line-spacing 5) (setq global-hl-line-mode nil) )
此外,你还可以让Emacs在 *scratch*
中使用 markdown-mode
来轻松进入写作模式:
(setq initial-major-mode 'markdown-mode)
这是所有内容了。欢迎您通过电子邮件与我分享您的推荐。