今日は、Cygwin 環境の Emacs で Readme.md 等の markdown ファイルを編集する設定を紹介します。
・Emacs で編集する
M-x package-install で markdown-mode をインストールしておきます。Emacs で md ファイルを開けば markdown-mode で編集できます。
・md ファイルを表示する
github.com
ここから markcat をダウンロードして zip を展開します。ディレクトリ名にスペースがあると面倒な事になるので c:\tools 等に置いてください。
次に Emacs の設定です。
(setq markdown-open-command "~/.emacs.d/etc/markcat.sh")
とします。
最後に markcat.sh を用意します。
#!/bin/sh if [ "$1" ]; then /cygdrive/c/tools/MarkCat-win32-x64/MarkCat.exe `cygpath -w "$1"` & else /cygdrive/c/tools/MarkCat-win32-x64/MarkCat.exe & fi
Cygwin の場合は実行権限が自動で付いたようですが、自動で付かない場合は、
$ chmod +x ./markcat.sh
として実行権限を付与してください。
ポイントは 2 点です。
・バックグラウンドで動かしたいので「&」を付ける。(付けないと markcat を終了するまで Emacs が固まってしまいます)
・markcat は普通の Windows アプリなので Cygwin のパスは理解できません。(/home とか言われても「は?」ってなりますw)。なので cygpath で Windows のパスに変換してあげます。
あとは、Emacs で md ファイルを編集して、C-c C-c o で markcat が起動するのでプレビューできます。Emacs で md ファイルを保存すると markcat は再プレビューしてくれます。便利です。
さらに Windows のパスに空白が入っていることがあるので、cygpath の結果を「"」で括ったほうが良いかも。
#!/bin/sh if [ "$1" ]; then /cygdrive/c/tools/MarkCat-win32-x64/MarkCat.exe "`cygpath -w "$1"`" & else /cygdrive/c/tools/MarkCat-win32-x64/MarkCat.exe & fi
これでパスに空白があっても開けます。
スペース込みのパスの場合にスクリプトの第一引数「$1」 にちゃんと渡されるの?って懸念はあるけど、なんか大丈夫ぽい(適当