Emacsでmarkdown-modeを使用する

Emacsでmarkdown-modeを使用してみます。
markdownの編集で使えるモードで結構便利なので紹介してみます。

インストール


Emacsのパッケージインストーラからインストールをします。
以下を実行します。

1
M-x package-list-packages

markdown-modeを選択してインストールを実施します。

他にmarkdownコマンドが使用できるようにする必要がありますので、合わせてインストールします。
MacOSXだとHomebrewを使用すれば一発でインストール出来ます。

1
$brew install markdown

設定


  • markdown-modeを使用できるように「.emacs.d/init.el」に以下を追加
1
(autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t)
  • markdown-modeで使用できる拡張子を追加
1
(setq auto-mode-alist (cons '("\\.markdown" . markdown-mode) auto-mode-alist))

上の設定では、.markdownと付くファイルは、markdown-modeを使用する設定です。
他に使用したいmarkdown-modeを使用したい拡張子があれば、同じようにして追加します。(下は.txtと付くファイルをmarkdown-modeで開きます)

1
(setq auto-mode-alist (cons '("\\.txt" . markdown-mode) auto-mode-alist))

エラー対処


プレビューを実行しようとすると、以下のようなエラーが発生します。

1
/bin/bash: markdown: command not found

原因は、以下の2点が考えられます。

  1. markdownコマンドがインストールされていない
  2. Emacsが認識しているパスと環境変数のパスが異なる

1に関しては、markdownコマンドをインストールをすれば解決します。
2に関してですが、以下のようにしてEmacs側にパスを通してやれば解決できます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
(dolist (dir (list
              "/sbin"
              "/usr/sbin"
              "/bin"
              "/usr/bin"
              "/opt/local/bin"
              "/sw/bin"
              "/usr/local/bin"
              (expand-file-name "~/bin")
              (expand-file-name "~/.emacs.d/bin")
              ))
 (when (and (file-exists-p dir) (not (member dir exec-path)))
   (setenv "PATH" (concat dir ":" (getenv "PATH")))
   (setq exec-path (append (list dir) exec-path))))

プレビュー


  • markdown-outputバッファでプレビューを確認する
1
C-c C-c m
  • ブラウザでプレビューを確認する(一時ファイルを作成します)
1
C-c C-c v

公式にその他の使用方法が掲載されていますので、その他の機能はそちらを参照してください。

ブラウザでプレビューしていて、かつOctpress用の記事を編集する場合、注意してください。

そのままデプロイするとhtmlファイルまでアップロードされてしまうので、2重投稿になるので気をつけてください。