はじめに
今更ですが、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で圧縮して提出することが出来ます。
以上でした。