Vimプラグインを自作して公開する

はじめに

今更ですが、Vimプラグインを作り公開する方法をまとめたいと思います。

以前、こちらで再帰関数で括弧構文を作るVimスクリプトやRubyスクリプトを作りました。

今回はこのスクリプトをVimプラグインにして公開することにします。

準備

まずはソースの管理と公開のためにGitHubにリポジトリを作ります。
短く、分かりやすく、被らない名前が推奨されています。
https://github.com/momozo2251/vim-rebrackets

ディレクトリ構成

リポジトリを見てもらう方が速いかもしれませんが、一応下記の通りになります。

.
├── LICENSE
├── README.md
├── autoload
│   └── recursive_brackets.vim
├── plugin
│   └── recursive_brackets.vim
└── doc
    └── rebrackets.txt

autoload/plugin


autoloadディレクトリはVimが初期化された時にロードされるスクリプトを置く場所です。
対してpluginディレクトリは、ユーザーが明示的に呼び出すことでロードされるスクリプトを置く場所です。

一般的に実際の関数はautoloadに、プラグインの設定などはpluginに格納されることが多いようです。

今回はプラグインの機能部分をautoloadの方に記述しています

function! recursive_brackets#RecursiveBracketsMain(message, count)
  const result = s:RecursiveBrackets(a:message, a:count, a:message)
  call s:SetRegister(result)
  echo 'yanked: ' . result
endfunction

function! s:RecursiveBrackets(message, count, result)
  if a:count <= 1
    return a:result
  else
    return s:RecursiveBrackets(a:message, (a:count - 1), (a:message . '(' . a:result . ')'))
  endif
endfunction

function! s:SetRegister(message)
  let @* = a:message
  let @" = a:message
endfunction

そして関数を呼び出すコマンドの定義をpluginの方に記述しています。

command! -nargs=* RecursiveBrackets call recursive_brackets#RecursiveBracketsMain(<f-args>)

※この記事に掲載しているコードは古くなっている可能性があるので、最新のコードはGitHubの方を確認して下さい。

LICENSE/ドキュメント

LICENSEやドキュメントに関しては必須ではないですが、当然あった方が良いものです。書き方はその辺のVimプラグインを参考にして下さい。

公開

公開方法はGitHubで公開するのが一番手っ取り早いです。
例えば先述のリポジトリで公開しているvim-rebracketsプラグインをインストールするには、通常通り.vimrcに下記のコードを記述します。

Plug 'momozo2251/vim-rebrackets'

そして:PlugInstallとExコマンドを実行すればインストールされます。

他にもvimawesomeやVim.orgに提出する方法もあります。

vimawesomeには「Submit」からGitHubのリンクと、必要項目を入力して提出出来ます。

Vim.orgではアカウントを作り、マイページからソースをzipやtarで圧縮して提出することが出来ます。

以上でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA