preservim/vim-markdown プラグインのまとめ
機能概要
VimでMarkdownファイルを快適に扱うためのプラグイン。主な機能は以下の通りです。
- シンタックスハイライト: Markdownの構文を色付けして見やすくします。
- 折りたたみ: ヘッダー単位で文章を折りたたむことができます。
-
簡易表示 (Concealing):
*bold*を bold のように、構文を隠して表示をすっきりさせます。 - キーマッピングとコマンド: ヘッダー間の移動や、目次の生成などが簡単に行えます。
インストール方法 (dein.vim)
dein.vim を使用している場合、設定ファイル(.vimrc や init.vim、またはTOMLファイル)に以下を記述します。
依存プラグインについて
Markdownのテーブル(表)整形機能を利用するには、godlygeek/tabular プラグインが別途必要です。vim-markdownがこの機能を利用するためには、tabularを先に読み込む必要があります。
Vim script (.vimrc, init.vim):
call dein#add('godlygeek/tabular')
call dein#add('preservim/vim-markdown')
TOMLファイル (dein.tomlなど):
[[plugins]]
repo = 'godlygeek/tabular'
[[plugins]]
repo = 'preservim/vim-markdown'
その後、Vimを再起動するか、:call dein#install() を実行してプラグインをインストールしてください。
基本的な操作方法
自動で有効になる機能
-
シンタックスハイライト:
見出し、リスト、強調、コードブロックなどが自動的に色付けされ、視覚的に分かりやすくなります。 -
表示の簡易化 (Concealing):
ノーマルモードでは、*太字*が太字で表示されたり、_イタリック_がイタリックで表示されるなど、Markdownの記号が隠れて表示がスッキリします。挿入モードに入れば記号は再び表示されます。
見出し(ヘッダー)間の移動
ノーマルモードで以下のキーを入力すると、#で始まる見出し行間を素早く移動できます。
-
]]: 次の見出しに移動します。 -
[[: 前の見出しに移動します。 -
][: 次の同じレベルの見出しに移動します。(例:##から次の##へ移動) -
[]: 前の同じレベルの見出しに移動します。
折りたたみ (Folding)
見出しを基準に、セクションを折りたたんだり展開したりできます。
-
za: カーソル下の折りたたみをトグル(開く/閉じる)します。 -
zM: すべての折りたたみを閉じます。 -
zR: すべての折りたたみを開きます。 -
zo: カーソル下の折りたたみを開きます。 -
zc: カーソル下の折りたたみを閉じます。
目次の表示
コマンドを実行すると、現在のファイルの目次を生成して新しいウィンドウに表示します。目次内の項目にカーソルを合わせてEnterキーを押すと、対応する見出しにジャンプできます。
-
:Toc: 垂直分割ウィンドウで目次を開きます。 -
:Toch: 水平分割ウィンドウで目次を開きます。 -
:Toct: 新しいタブで目次を開きます。
テーブルの整形 (要: godlygeek/tabular)
godlygeek/tabular プラグインがインストールされている場合、テーブル(表)の内部で以下のコマンドを実行すると、| の位置を基準に自動で整形できます。
:TableFormat
その他の便利な操作
-
リンクを開く: URLの上で
gxと入力すると、Webブラウザでそのリンクを開きます。 -
見出しレベルの変更: 見出し行でノーマルモードのときに、
-
>>: 見出しレベルを一つ下げます(例:##→###)。 -
<<: 見出しレベルを一つ上げます(例:###→##)。
-
オプション変数
折りたたみ (Folding)
| 変数名 | 説明 | 規定値 | 設定例 |
|---|---|---|---|
g:vim_markdown_folding_disabled |
1に設定すると、折りたたみ機能を無効にします。 |
0 (無効) |
let g:vim_markdown_folding_disabled = 1 |
g:vim_markdown_folding_level |
ファイルを開いた際のデフォルトの展開レベル。 |
0 (すべて展開) |
let g:vim_markdown_folding_level = 1 |
g:vim_markdown_folding_style_pythonic |
1に設定すると、折りたたみの表示スタイルがPython風になります。 |
0 (Vim標準) |
let g:vim_markdown_folding_style_pythonic = 1 |
表示の簡易化 (Concealing)
| 変数名 | 説明 | 規定値 | 設定例 |
|---|---|---|---|
g:vim_markdown_conceal |
0に設定すると、簡易表示機能を無効にします。 |
1 (有効) |
let g:vim_markdown_conceal = 0 |
g:vim_markdown_conceal_code_blocks |
0に設定すると、コードブロックの記号を隠さなくなります。 |
g:vim_markdown_concealの値に依存 |
let g:vim_markdown_conceal_code_blocks = 0 |
構文拡張 (Syntax Extensions)
| 変数名 | 説明 | 規定値 | 設定例 |
|---|---|---|---|
g:vim_markdown_math |
1に設定すると、LaTeX数式のハイライトを有効にします。 |
0 (無効) |
let g:vim_markdown_math = 1 |
g:vim_markdown_frontmatter |
1に設定すると、YAML Front Matterのハイライトを有効にします。 |
0 (無効) |
let g:vim_markdown_frontmatter = 1 |
g:vim_markdown_toml_frontmatter |
1に設定すると、TOML Front Matterのハイライトを有効にします。 |
0 (無効) |
let g:vim_markdown_toml_frontmatter = 1 |
g:vim_markdown_json_frontmatter |
1に設定すると、JSON Front Matterのハイライトを有効にします。 |
0 (無効) |
let g:vim_markdown_json_frontmatter = 1 |
g:vim_markdown_strikethrough |
1に設定すると、取り消し線構文のハイライトを有効にします。 |
0 (無効) |
let g:vim_markdown_strikethrough = 1 |
g:vim_markdown_fenced_languages |
コードブロックの言語指定をカスタマイズします。 | ['c++=cpp', 'viml=vim', 'bash=sh'] |
let g:vim_markdown_fenced_languages = ['ruby=rb'] |
キーマッピングとコマンド
| 変数名 | 説明 | 規定値 | 設定例 |
|---|---|---|---|
g:vim_markdown_no_default_key_mappings |
1に設定すると、デフォルトのキーマッピングを無効化します。 |
0 (無効) |
let g:vim_markdown_no_default_key_mappings = 1 |
g:vim_markdown_toc_autofit |
1に設定すると、目次ウィンドウの幅を自動調整します。 |
0 (無効) |
let g:vim_markdown_toc_autofit = 1 |
補足
- 多くの機能は、パフォーマンスや他のプラグインとの競合を避けるため、デフォルトでは無効(
0)になっています。必要なものだけを明示的に有効(1)にして使うのが基本的なスタイルです。 -
g:vim_markdown_conceal_code_blocksのように、他の変数の値に依存するものもあります。