VimでMarkdownのプレビューをする

Vim上でMarkdownのプレビューを行う方法です。
結論としては、preview-markdown.vimというプラグインを使うことによって実現することができます。

環境

OS

  • macOS Catalina v10.15.6

Vim

$ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Aug  2 2020 00:45:48)
  • プラグインマネージャー:vim-plug

完成イメージ

最終的な完成イメージはこんな感じです。

screen shot

手順

1. Markdown のパーサーをインストール

後にインストールするVimプラグインで内部的に利用するためのMarkdown のパーサーをインストールします。 今回はmdrというパーサーを利用しますが、他にも下記のパーサーが利用可能です。

ターミナルにmdrコマンドを入力した時に以下のように表示されればOKです。

$ mdr
usage: mdr <file.md>

mdr のインストール方法の詳細は、以降の「つまづきポイント」にて紹介しています。

2. preview-markdown.vim をインストール

僕はプラグインマネージャーに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 コマンド実行時に「開発元を検証できないため開けません」というメッセージが表示される
  • マークダウンのプレビュー画面が右ではなく左に表示されてしまう

1. mdr をどうやってインストールすればいいのか

preview-markdown.vimのREADMEには、 Requirements としてマークダウンパーサーが書かれてはいるのですが、 実際にどのようにそれをインストールしたらいいのか、までは書かれておりません。

そこで、マークダウンのパーサーであるmdrをインストールするために、 mdr の方の README を覗いてみると、

You can grab a pre-compiled binary.

と書いてあり、色々あるバイナリファイルから適切なものをダウンロードしてねとしか書かれておらず、少々困惑。

それを解決してくれたのが、コチラの記事でした。

簡単にまとめると、

  1. 以下のコマンドを叩いて、自PCのカーネルのタイプを出力

    $ uname -a
    Darwin Kernel Version 19.6.0 (中略) x86_64
  2. 適したバイナリをダウンロード
    mdr_darwin_amd64 をダウンロードします。
  3. ダウンロードしてきたバイナリに対してパスを通す

    # バイナリファイルをダウンロードした先に移動する
    $ cd { ダウンロードフォルダ }
    # バイナリファイルに対して実行権限を付与する
    $ chmod +x ./mdr_darwin_amd64
    # バイナリファイルをパスが通っているフォルダへ移動する
    $ sudo mv ./mdr_darwin_amd64 /usr/local/bin/mdr
    # 【参考】パスが通っているフォルダの確認方法
    $ echo $PATH

2. mdr コマンド実行時に「開発元を検証できないため開けません」というメッセージが表示される

上の1番が完了し、「これで mdr コマンドが使えるようになった!」と思いきや、さらなる関門がありました。 ターミナル上で、

$ mdr

と実行すると、「開発元を検証できないため開けません」というポップアップウィンドウが表示されてしまいます…。 これについてまた調べていると、コチラの記事を見つけました。

どうやら、Macではセキュリティ保護のため、なんでもかんでもダウンロードしてきたファイルを実行することはできないようになっているようです。

とはいえ、今回はダウンロードしてきたバイナリを実行する必要があるので、 実行許可を与えるために、以下のコマンドをターミナル上で実行します。

# ダウンロードしたすべてのアプリケーションを許可する
$ sudo spctl --master-disable

※ただこのコマンドは、書いてあるとおり、ダウンロードした全てのアプリケーションに対して実行許可を与えてしまうため、 同時にセキュリティリスクも伴うので、実行する際は慎重に活用されたい。

これで、晴れてターミナル上で mdr コマンドを実行できるようになりました。

3. マークダウンのプレビュー画面が右ではなく左に表示されてしまう

3つ目のつまずきポイントは、「マークダウンのプレビュー画面が右ではなく左に表示されてしまう」ところです。 これは好みかもしれませんが、僕個人的には、

  • 左側:編集中のmdファイル
  • 右側:プレビュー画面

が見やすいだろうなあと思っていたのですが、 :PreviewMarkdown で開かれるプレビューはいつも左側になってしまいます。

プレビュー画面を表示させるたびに、 Ctrl-w R で画面を入れ替えればいい話ですが、それも毎回やるのは面倒ですよね。

なので、調べてみたところ解決方法が見つかりました。

vim はデフォルトの動作で、新しいウィンドウを開くときは上か左に開かれるようです。

なので結論としては、 .vimrc に以下を追加するだけです。

" 新しいウィンドウを右に開く
set splitright

これでプレビュー画面が右側に表示されるようになりました。

おまけ

マークダウンのプレビューをするために、毎回 :PreviewMarkdown なんて打つのは大変なので、 キーマップを設定しておくと非常に楽です。

ちなみに僕は以下の通り、 <Leader>md (<Leader>はSpaceキー) に設定しています。

" Markdownプレビュー
nnoremap <Leader>md :PreviewMarkdown<CR>

参考


Written by@Yoshio
本ブログの運営者。ソフトウェアエンジニアをやっています。

GitHubTwitterLinkedIn