VimでのMarkdown環境を整える でやったVimのMarkdownのハイライトの更新について。
Fork元の方で更新があったのでそれを取り入れたのと、 codeblock部分でのハイライトを別に移しました。
vim-markdown
このプラグインでVim上でMarkdownのハイライトを行っています。
このレポジトリは plasticboy/vim-markdown をフォークしたものですが、 以下の様な変更をしてあります。
- filetypeを
mkd
からmarkdown
に変更。- プラグインの中で
markdown
だけをマークダウンのfiletypeとして 見るものもあるため。
- プラグインの中で
xxx.md.old
やxxx.markdown.tmp
といったものもmarkdown
として認識。- シンタックスハイライトについて
- スペルチェックの有効化。
(XXX)
みたいな括弧だけの時にもURLになってしまうのを回避。- HTMLのハイライトの有効化。
- インラインURLの改善。
- コード部分の区切りを中のコードの色と区別。
- LiquidTag(
{% ~ %}
)の導入。 - PHP Markdown Extraの
~~~
によるコードブロックの導入。
ただし、上の中でスペルチェックについてと(XXX)
の括弧だけの場合にもURLに
なってしまう問題は最近のアップデートでフォーク元でも直った様です。
他にも細かい所が治っていたり、 yamlブロックを別途ハイライト出来る様になったり、 テーブルを作ったりするコマンドが追加されてたり、 ユニットテストとか導入されてたりしたので その辺を貰ってきて追加してあります 1。
以前はコレに加えて joker1007/vim-markdown-quote-syntax で行われているコードブロック内の言語別のハイライトも vim-markdownの中に入れていましたが、 今回これを外して直接このプラグインを使うようにしました。
このプラグインの中では3点バックチックのコードのみ扱われているので、 これにLiquidやOctopress、またPHP Markdown Extraのコードブロックも 使える様に変更を加えてアップデートしたものをPull Requestに出しています。
追記: 2014/11/11
本家に反映してもらったのでそちらをどうぞ。
追記ここまで
以前vim-markdownに入れてた段階では、Octopressのコードブロックでは
lang:cpp
みたいにlang
を入れないと反映されませんでしたが、
{% codeblock test.cpp %}
みたいにタイトルに拡張子付きのファイル名
を入れるだけでも反映するようにしました。
(Octopressで変換するときにはファイル名だけでも変換してくれるので。)
また、以前はJavaについて有効化するとスペルチェックが殆どの場所で 効かなくなってしまってたので無効化してましたが、 下のJavaのシンタックスファイルの中でやってる
syntax spell default
が悪さをしていて(というかJavaの時にはそういう意図があって)、 これを上のプラグインの中で一旦読んだ後に
syntax spell toplevel
することで治せました。
Javaのファイルを読んでる時にスペルチェックを有効にしたい場合には 同じようにこのコマンドを呼べば出来ます。 (ただ、下のファイルのコメントにもあるように識別子とかほとんどをスペルチェックしてしまうので やはりJavaのファイルの編集時に全部だと邪魔臭いかも。)
java.vim - vim - Vim - the text editor - Google Project Hosting
使い方は NeoBundle を使っているなら
1 2 3 4 |
|
な感じで。
godlygeek/tabular
はテーブル作成用のプラグインで、
vim-markdownの中で:TableFormat
というコマンドで
これをラップする形で使っています。
(README参照。)
さらに、下の様な設定をしておくと便利です。
1 2 3 4 |
|
liquidタグに関してはrcmdnk版で入れた物でデフォルトで有効になってるので 敢えて入れなくても反映されます。(無効にしたいときには0に)
g:vim_markdown_frontmatter
を1
にすると先頭のYAMLブロックをきちんと
YAMLとしてハイライトしてくれるのでLiquid/Octopressを使うときには
非常に便利です。
以前まではブロックの最後に---
があって、これがMarkdownのタイトルの
マークアップと勘違いされてブロックの最後の行がMarkdownのタイトルとして
ハイライトされてしまったりして気持ち悪いのでわざわざ一行開ける、
みたいなこともしてましたが、
今回のアップデートでこれも解決します。
g:vim_markdown_math
はLatex的な$x=y$
とかをハイライトしてくれます。
Latexの数式の書式をサポートするMarkdownパーサーとかも出てきたので
その辺の対応だと思います。
特にその辺使って無ければ有効にしてもあれですが、有効にしておいても
特に問題は出ないと思います。
それから、*.txt
とかのファイルにもちょっとMarkdownっぽく書くこともあるので
*.txt
や*.text
ファイルの場合もMarkdownとして扱う様にしています。
以下はこれらを試してみたもの。
スペルチェックの所は手元のターミナルでは下線が付いてるんですが、
:TOHtml
ではなぜかこれだけ反映されずに付いてません。。。
(ターミナルでやる限りは上手く行ってます。)
今回のアップデートでは
- YAMLブロックの部分をハイライト出来る様になったことと
- Octopressのコードブロックでファイル名だけで反映できる様になった所
が特に嬉しいところです。
プラグインのアップデートが上手くいかない場合はこちらを参照:
-
本家の方にPull Requestを出して、とかも考えてますが、 filetypeは恐らく変更されないのと、 htmlのコードハイライトとかも敢えて消してたりするので こちらのやってることを全部入れてもらうのは難しそうだな、とも。 ↩