0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

preservim/vim-markdownの使い方メモ

Posted at

preservim/vim-markdown プラグインのまとめ

機能概要

VimでMarkdownファイルを快適に扱うためのプラグイン。主な機能は以下の通りです。

  • シンタックスハイライト: Markdownの構文を色付けして見やすくします。
  • 折りたたみ: ヘッダー単位で文章を折りたたむことができます。
  • 簡易表示 (Concealing): *bold*bold のように、構文を隠して表示をすっきりさせます。
  • キーマッピングとコマンド: ヘッダー間の移動や、目次の生成などが簡単に行えます。

インストール方法 (dein.vim)

dein.vim を使用している場合、設定ファイル(.vimrcinit.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 のように、他の変数の値に依存するものもあります。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?