Linuxを日常的に使う実験ブログ

VimをMarkdownエディタにするmdforvimプラグインを公開しました

 2015-03-03

 2015-10-11

 Linux全般
Vim

こんにちは。今回のテーマは『VimをMarkdownエディタにするmdforvimプラグインを公開しました』です。隙間時間で作っていたプラグインmdforvimが何とか動くようになったので公開しました。 【関連記事】 これで使える!Vimのコマンド集(基本操作編) [adsense02] 【目次】 VimをMarkdownエディタにするプラグイン:mdforvim mdforvimの特徴 mdforvimの使い方 作成経緯 今後の課題 お世話になったサイト・プロジェクト

VimをMarkdownエディタにするプラグイン:mdforvim

mdforvimはvim用のプラグインです。下の画像のようにVim中でMarkdwon文書を変換したりプレビューすることができます。もちろんHTMLファイルを出力することも可能です。 Demo 1:リアルタイムプレビュー demo01 Demo 2:編集画面のHtmlへの変換 demo02

mdforvimの特徴

mdforvimはvimscriptで書かれたMarkdwonコンバーターを搭載しており外部ツールに依存することなくVim単体でMarkdwonからHTMLへ変換が可能です。(動作はLinuxで確認済み、Windowsでは未確認です。)

できること

mdforvimでは以下のことができます。筆者がMarkdownエディタに必須と思う機能は盛り込んだつもりです。

  1. その場で書いているMarkdownをHTMLに変換して確認できる
  2. リアルタイムプレビューができる
  3. Markdownファイルを上書きすることなくHTMLファイルを出力できる

依存関係など

mdforvimは外部プログラムに依存しません。プレビューを行う際はWebブラウザを必要とします。また、定期的に読み込むためjavascriptを許可してください。

他のツールとの違い

大してリサーチせずに作っているので車輪の再発明をしている可能性は多大にあるのですが、mdforvimはvimscriptで書かれたMarkdownコンバーターを持つことが特徴です。よって、本家のperlや他の外部プログラムを呼び出して変換する仕組みとは大きく異なります。また、Markdownのプレビュー機能のみを備えたプラグインとも異なります。

mdforvimの使い方

基本的にはGithubのREADMEの内容と同じです。

インストール

VundleやNeoBundle等のプラグインマネージャーを使うことをおすすめします。 NeoBundleを使っている方は以下のフレーズを.vimrc(または_vimrc)に追記して下さい。

NeoBudleFetch ‘kurocode25/mdforvim’

あとは以下コマンドでインストールできます。

:NeoBundleInstall

手動でインストールする場合はgithubよりクローンして~/.vim/内にmdpreview,autoload,pluginディレクトリを配置して下さい。

カレントバッファのHTML変換

以下コマンドを実行してください。

:MdConvert

リアルタイムプレビュー

以下コマンドでプレビューを開始してください。

:MdPreview

プレビューを止める時には以下コマンドで止めます。

:MdStopPreview

HTMLファイルの出力

編集中のMarkdownファイルをHTMLファイルに変換して保存できます。以下コマンドを実行してください。

:MdSaveAs <ファイル名.html>

作成経緯

最初はプラグインを公開するつもりなど無く、完全に自分用にvimscriptでMarkdownコンバータを書いていました。たまたまprevimの存在を知り、自分の自作Markdownコンバーターにプレビュー機能を付けてみたのがmdforvimを作成したきっかけです。

今後の課題

以下の課題に今後取り組む予定です。

  1. 安定したMarkdownコンバーターとして不十分な点が多い
  2. Markdown方言への対応

1番目については筆者が個人的に使わないMarkdownが省略されてしまっています。例えば参照型のURLリンクについては未対応です。よって以下のように書かれた場合はHTMLに変化しません。今後対応予定です。

I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3].

[1]: http://google.com/ “Google” [2]: http://search.yahoo.com/ “Yahoo Search” [3]: http://search.msn.com/ “MSN Search”

2番目は少々お時間をいただくと思います。Markdownの方言はいろいろあるので、まずは表についてQiita記法に準じていこうと考えています。

お世話になったサイト・プロジェクト

1.previmの作者であるkanno_kanno氏のブログぼっち勉強会 vim用pluginを書くに当たり色々と参考にさせていただきました。 2.vital.vim ブラウザを開く箇所にてvital.vimを部分的に使っております。NYSLライセンスで素晴らしいプログラムを公開してくださった方々に感謝申し上げます。 [adsense]