October 12, 2020
Vim上でMarkdownのプレビューを行う方法です。
結論としては、preview-markdown.vimというプラグインを使うことによって実現することができます。
$ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Aug 2 2020 00:45:48)
最終的な完成イメージはこんな感じです。
後にインストールするVimプラグインで内部的に利用するためのMarkdown のパーサーをインストールします。 今回はmdrというパーサーを利用しますが、他にも下記のパーサーが利用可能です。
ターミナルにmdr
コマンドを入力した時に以下のように表示されればOKです。
$ mdr
usage: mdr <file.md>
mdr のインストール方法の詳細は、以降の「つまづきポイント」にて紹介しています。
僕はプラグインマネージャーにvim-plugを使っているので、.vimrc
に以下の通り追記しました。
Plug 'skanehira/preview-markdown.vim'
あとはプレビューしたい.md
ファイルをVimで開き、以下を入力すると無事にマークダウンファイルのプレビューをみることができます。
:PreviewMarkdown
必要に応じて、以下の値を .vimrc に設定しておくと良いです。
g:preview_markdown_vertical
: プレビュー画面を垂直に分割して開きたい場合は1に設定するg:preview_markdown_parser
: mdr 以外のマークダウンパーサーを指定する場合g:preview_markdown_auto_update
: プレビュー画面のホットリロードをしたい場合は1に設定する" skanehira/preview-markdown.vim用の設定値
let g:preview_markdown_vertical = 1
let g:preview_markdown_auto_update = 1
最後に個人的につまずきポイントだったところを3つ紹介します。
mdr
をどうやってインストールすればいいのかmdr
コマンド実行時に「開発元を検証できないため開けません」というメッセージが表示されるmdr
をどうやってインストールすればいいのかpreview-markdown.vimのREADMEには、 Requirements としてマークダウンパーサーが書かれてはいるのですが、 実際にどのようにそれをインストールしたらいいのか、までは書かれておりません。
そこで、マークダウンのパーサーであるmdrをインストールするために、 mdr の方の README を覗いてみると、
You can grab a pre-compiled binary.
と書いてあり、色々あるバイナリファイルから適切なものをダウンロードしてねとしか書かれておらず、少々困惑。
それを解決してくれたのが、コチラの記事でした。
簡単にまとめると、
以下のコマンドを叩いて、自PCのカーネルのタイプを出力
$ uname -a
Darwin Kernel Version 19.6.0 (中略) x86_64
mdr_darwin_amd64
をダウンロードします。ダウンロードしてきたバイナリに対してパスを通す
# バイナリファイルをダウンロードした先に移動する
$ cd { ダウンロードフォルダ }
# バイナリファイルに対して実行権限を付与する
$ chmod +x ./mdr_darwin_amd64
# バイナリファイルをパスが通っているフォルダへ移動する
$ sudo mv ./mdr_darwin_amd64 /usr/local/bin/mdr
# 【参考】パスが通っているフォルダの確認方法
$ echo $PATH
mdr
コマンド実行時に「開発元を検証できないため開けません」というメッセージが表示される上の1番が完了し、「これで mdr
コマンドが使えるようになった!」と思いきや、さらなる関門がありました。
ターミナル上で、
$ mdr
と実行すると、「開発元を検証できないため開けません」というポップアップウィンドウが表示されてしまいます…。 これについてまた調べていると、コチラの記事を見つけました。
どうやら、Macではセキュリティ保護のため、なんでもかんでもダウンロードしてきたファイルを実行することはできないようになっているようです。
とはいえ、今回はダウンロードしてきたバイナリを実行する必要があるので、 実行許可を与えるために、以下のコマンドをターミナル上で実行します。
# ダウンロードしたすべてのアプリケーションを許可する
$ sudo spctl --master-disable
※ただこのコマンドは、書いてあるとおり、ダウンロードした全てのアプリケーションに対して実行許可を与えてしまうため、 同時にセキュリティリスクも伴うので、実行する際は慎重に活用されたい。
これで、晴れてターミナル上で mdr
コマンドを実行できるようになりました。
3つ目のつまずきポイントは、「マークダウンのプレビュー画面が右ではなく左に表示されてしまう」ところです。 これは好みかもしれませんが、僕個人的には、
が見やすいだろうなあと思っていたのですが、
:PreviewMarkdown
で開かれるプレビューはいつも左側になってしまいます。
プレビュー画面を表示させるたびに、 Ctrl-w
R
で画面を入れ替えればいい話ですが、それも毎回やるのは面倒ですよね。
なので、調べてみたところ解決方法が見つかりました。
vim はデフォルトの動作で、新しいウィンドウを開くときは上か左に開かれるようです。
なので結論としては、 .vimrc に以下を追加するだけです。
" 新しいウィンドウを右に開く
set splitright
これでプレビュー画面が右側に表示されるようになりました。
マークダウンのプレビューをするために、毎回 :PreviewMarkdown
なんて打つのは大変なので、
キーマップを設定しておくと非常に楽です。
ちなみに僕は以下の通り、 <Leader>md
(<Leader>
はSpaceキー) に設定しています。
" Markdownプレビュー
nnoremap <Leader>md :PreviewMarkdown<CR>