Open1

コード内のコードを快適に編集する Vim プラグインの開発メモ

monaqamonaqa

プログラミング言語・マークアップ言語いずれの場合も、「コードの中に異なる言語のコードが埋め込まれる」ことがよくある。以下はその例。

  • 任意言語 in Markdown: Markdown の fenced code block の中には、任意の言語の文法が記述されうる。
  • Markdown in Rust: Rust の doc comment は Markdown で記述される。
  • Markdown/reStructuredText in Python: Python の docstring は Markdown/reST で記述される。
  • shellscript in YAML: YAML の複数行テキストの中でシェルスクリプトが記述される場合がある。

このような「コード内コード」を編集する場合、大抵は外側の言語に特化した環境で内側の言語をいじることになり、編集が面倒になりやすい。
「コード内コードを別バッファに抽出する」ことで内側の言語に特化した環境を作れば、より快適に編集できると考えられる。
これを行うためのプラグイン pickuplines.vim を作成する。