シチュエーション
あなたはTeXで資料を作っているところです。
(Beamerでスライドを作っていると置き換えてもいいです)
箇条書きって,書くの面倒くさくないですか?
\begin{itemize}
  \item
    hoge
  \item
    huga
  \item
    piyo
\end{itemize}
ましてローマ数字(I, II, ...)で番号を振りたいとなったら
\begin{enumerate}
  \def\labelenumi{\Roman{enumi})}
  \item
    hoge
  \item
    huga
  \item
    piyo
\end{enumerate}
書きたいのはhoge, huga, piyoとかなのに。
Vimのformat機能 + pandocを使って解決
gq コマンドとformatprg
:help formattingもしくは:help gqの項を見ると,
gq(+モーションコマンド)を使えば
- 
formatexprが空でなければその内容を実行 - 
formatprgが空でなければその外部プログラムが使われる - 上記に当てはまらなければ内部でフォーマッティングが行われる
 
みたいなことが書いてあると思います。
注目するのは2番めのformatprgを指定してフォーマットを行う方法です。
文書変換ツールpandoc
pandocというツールを使えば,markdownからLaTeXに変換するのも楽ちんです。
したがって,tex形式のファイルにおいてgqコマンドを実行した時にはpandocを使って選択範囲に対して markdown -> LaTeX 変換を行うようにすれば良さそうです。~/.vimrcに
augroup texfile
  autocmd BufRead,BufNewFile *.tex set filetype=tex
  let md_to_latex  = "pandoc --from=markdown --to=latex"
  autocmd Filetype tex let &formatprg=md_to_latex
augroup END
のように書いておきます。
使い方
texファイルを編集している最中に,「markdownで書いたらすぐなのになぁ」という事案に遭遇したら,とりあえずその場でmarkdownで書いて,範囲選択して,gqと押したら,その部分がTeX形式に変換されて編集終了です。
まとめ
pandoc万能。Vim拡張性高すぎ。
スニペット挿入機能とかを使ってもいいのかもしれないけれど,そのコマンドを覚えるくらいなら,markdownで書いてしまったほうが速いよねって話。
あと,以前はmarkdownで全部書いてからpandocを通してTeXに変換していたのだけれど,変換後にTeX側を細かく修正してしまい,手直ししようと思うと結局TeXファイルを直にいじることになるので,逆に,基本はtexファイルを直接編集して,書きづらいところだけmarkdownで書くようにすればいいかなと思いました。
例ではTeXのリストしかあげていませんが,画像の貼り付けなどでも威力を発揮するので,TeX書かないといけない人はぜひお試しあれ。
(追記: 2016/07/20)
formatprgを活用する例
(追記ここまで)


