🔰
初めてNeovimをプラグインを作った話
この記事は1分で読めます。
何を作ったの?
shell-abbr.nvimというプラグインです。fish/zshのシェルで使っているabbrが直接neovimの中で使えます。
よもやま話
プラグインに関するいろいろな話です。
作ろうと思ったきっかけ
Fishで普段から便利に使っているabbr機能をNeovimの中で使いたいと思ったのがきっかけです。
特に類似のプラグインが見つからなかったため、開発に乗り出しました。
このプラグインを使うと、シェルで使っているabbrをNeovimでもそのまま活用できるようになります。
(というのがきっかけの半分で、もう半分のきっかけは駅伝ネタ目的です)
開発の流れ
Lazy.nvimを用いてプラグインを開発していたため、少し設定を書き加えるだけでローカルのプラグインを使うことができました。
{
dir = "path/to/local/plugin",
-- 筆者の環境では以下
dir = "~/dev/shell-abbr.nvim",
opts = {}
},
この機能を使ってプラグインの動作を確認していました。
仕組み
setup
が実行されると、特定のファイルタイプに対してautocmdが登録されます
このautocmdが実行されると、以下の処理が実行されます。
- シェルで定義されているabbrを取得
- パースして
{ name, expansion }
のリストに変換 -
iabbr
でNeovimの中でのabbrを登録
今後について
駅伝のために急いで作ったプラグインなので、まだまだ改善点がたくさんあります。
一例を挙げると、
- abbrを無効化できる機能
- 行頭のみ(コマンドが来る位置のみ)abbrを適用させる
- 対応するシェルを増やす
- 正規表現を用いたabbrに対応
などです。頃合いを見て実装したいと考えています。
まとめ
初めて作ったプラグインでしたが、思った通りに動いてくれてNeovimのプラグインの作りやすさを実感しました。やはり、コード数行で最小のプラグインを作れるのには(前々から知ってはいたものの)驚きました。
まだまだプラグインとしては未完成な部分はありますが、ぜひ使ってみてください。
Discussion