VimのPluginの基本

vim

今回のscript名はexample
名前は重複すると問題になるので固有のものを決める。

ファイル構造は

example
├── plugin
│   └── example.vim
├── autoload
│   └── example.vim
└── doc
     ├── (自動生成するので今は気にしない)
     └── example.txt

それぞれのフォルダの役割

  • plugin
    vim実行時に読み込まれる
    関数を呼び出すためのexコマンドをひも付する
    関数の本体は含まれない
  • autoload
    実行したいコードを管理するフォルダ
    コマンド実行時に読み込まれる。
  • doc
    helpなどの情報を記載する
    READ.MEとはべつでvimのコマンドから表示できるようにする

plugin/example.vim

"vimrcにg:loaded_example = 1 と記載されていた場合
"すでに読み込んだものとして無効にする
if exists('g:loaded_example')
    finish
endif
let g:loaded_example = 1

Exコマンドを定義

":Hello args
command! -nargs=1 Hello call example#hello(<q-args>)

autoload/example.vim

"call example#hello('msg')
function! example#hello(msg) abort
    echo a:msg
endfnction

doc/example.vim

LeafCage/vimhelpgeneratorを導入しコマンドを実行

:VimHelpgenerator

生成されるファイルの項目の説明文を記入

  • 変数
  • コマンド
  • キーマッピング
"コマンドを実行する
:Hello
"コマンドのヘルプを表示する
:h Hello

作成・保存・テストのサイクル

:w
:source plugin/example.vim
:source autoload/example.vim
:call example#hello('msg')