概要
emacsでmarkdownファイルを編集する際、markdown-modeを使用している。
markdown-modeではmarkdown-previewコマンドでmarkdownファイルをプレビューできるが、見た目がそっけない。
そこでGitHubライクなmarkdownプレビューができるgripを使用する。
ググった結果
EmacsでGithub flavorなMarkdownをプレビューできるようにする - cloverrose's blog に方法が紹介されているが、これには以下の問題がある。
- 外部にshell scriptを作成しなければならない(設定がemacs内に閉じていない)
- markdownファイルを編集する度にプレビューしなおさなければならない
- プレビューの表示が遅い気がする(気のせい?)
そこで以下を満たす設定を作成した。
- 設定が
init.elに閉じている - ファイル保存の度にプレビュー内容が自動更新される(
--exportオプションなしでgripを実行すれば良い)
設定内容
(setq github-user "Your GitHub username")
(setq github-pass "Your GitHub password")
(defun my-markdown-preview ()
(interactive)
(when (get-process "grip") (kill-process "grip"))
(when (get-process "grip<1>") (kill-process "grip<1>")) ;; プロセスが二重に起動していた場合、そちらもkillする
(start-process "grip" "*grip*" "grip" (format "--user=%s" github-user) (format "--pass=%s" github-pass) "--browser" buffer-file-name)
(when (get-process "grip") (set-process-query-on-exit-flag (get-process "grip") nil))
(when (get-process "grip<1>") (set-process-query-on-exit-flag (get-process "grip<1>") nil)) ;; プロセスが二重に起動していた場合、そちらもフラグを設定する
)
(define-key global-map (kbd "C-c p") 'my-markdown-preview)
使い方
markdownファイルを開いて M-x my-markdown-preview または C-c p でプレビューできる。