EMACS-DOCUMENT

=============>随便,谢谢

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)

这是所有内容了。欢迎您通过电子邮件与我分享您的推荐。

43239104260_4a26ceb627_b.jpg