Vimでいい感じにMarkdownを書く
理想のMarkdown編集環境を求めて
ブログやQiita::Teamへの投稿はMarkdownで書いている。
Markdown中にコードやコマンドを貼り付けることがよくあるのだけど、iTerm + tmux + vimのCUI環境で開発しているので、MarkdownもVimで書けたら便利だなぁと思っていた。
課題
MarkdownをVimで気持ちよく書くためには、この辺が気になっていた。
- リストのインデント
- リストの操作
- タスクリストの簡単入力、チェックをつける操作
- コードのシンタックスハイライト
- プレビュー
- 見出しのアウトライン表示
このうち、プレビューとアウトライン以外の機能を満たすMarkdown用の設定や関数を集めたVimプラグインを作った。なかなか快適。
Markdownのプレビュー
previmが最高。:PrevimOpen
とコマンドを実行するだけで、Makdownのプレビューがブラウザで確認できる。
見出しのアウトライン表示
普段、コードを書くときのアウトライナーにtagbarを使っているので、Markdownを編集中もTagbarでアウトライン表示したい。
Home · majutsushi/tagbar Wiki · GitHub にMarkdownをTagbar連携するやりかたが載っている。
ctagsを使うやりかたより、markdown2ctagsを使ったほうが見出しのネストに対応して直感的な表示になるので好みだった。
設定まとめ
次のような設定で、気持ちよくMarkdownが書ける環境になる!
NeoBundle 'kannokanno/previm' NeoBundle 'majutsushi/tagbar' NeoBundleFetch 'jszakmeister/markdown2ctags' NeoBundle 'violetyk/iikanji-markdown.vim' let g:tagbar_type_markdown = { \ 'ctagstype': 'markdown', \ 'ctagsbin' : $HOME . '/.vim/bundle/markdown2ctags/markdown2ctags.py', \ 'ctagsargs' : '-f - --sort=yes', \ 'kinds' : [ \ 's:sections', \ 'i:images' \ ], \ 'sro' : '|', \ 'kind2scope' : { \ 's' : 'section', \ }, \ 'sort': 0, \ }