点と接線。

#tech

NeovimをさらにLuaLuaさせた

あれから 一年近い月日が経った。ひとたび完結を見た僕のinit.luaはその後も進化し続け、ずいぶんIDE的な出で立ちに変貌を遂げた。当初のサブ武器としての位置付けはどこへやら、今ではすっかり長剣の顔をして鞘に収まっている。電脳空間を切り開くデジタルロードアウトはえてして可変長であり、所有者の意向次第で自在に特性を変えられるのだ。本稿では新たに増えたプラグイン群を紹介する。jaq-nvim いわゆるタスクランナー。書いたコードを即時に実行してくれる。国内では応用の幅広さからvim-quickrun がとりわけ有名だが、元がVim用のプラグインなのでNeovim特有のUIに対応していない惜しさがあった。jaq-nvimは逆にNeovimでしか動かない代わりにfloat windowで表示できる。

fzfと仲良く

言わずと知れたあいまい検索ツールfzf。日々、Vimを通してよろしくやってきた。しかし、元を正せばそもそもfzfはターミナル上で使う代物ではなかったか? そこへいくと僕の.zshrcに記されしかの設定群はいかにも心もとない。たぶん最初の出会い方が悪かったのだろう。今から言う昔話はちょっと気が早い人たちには心当たりがあるかもしれない。初めてfzfをインストールした状態で、おもむろにfzfと打つ。すると、なにやら景気よくパァーッとファイルの一覧が表示される。ウオーッ、なんだかすごそうだ、選択したら一体どうなるんだ、などと期待に胸を膨らませつつ任意のファイルを選ぶと……普通に相対パスが標準出力される。

あるはずのバックアップが全部消えていた

自分だけは、と思っていても起きる時は起きる。いつまでもあると思うな親と金とバックアップ。Cloudflare R2にcronで毎日アップロードしていたMastodonインスタンスのデータベースが、いつの間にか全部消えていた。AP実装においてデータベースはすべてである。これをなくしたらもはや取り返しはつかない。だからこそインスタンスの運営者はデータベースの保全に気を配る。わざわざオブジェクトストレージにアップロードしているのもサーバ本体の破損にデータベースが巻き込まれるのを防ぐためで、ローカルよりもクラウド上の方が安全との判断からだ。にも拘らず、ちょっとした行き違いが重なると瞬時に死の刃が首元まで迫ってくる。かつて僕が書いた自動化スクリプトの例を以下に記す。

とりあえずnone-ls.nvimでよくないか? / null-ls.nvimの保守的代替

夏真っ盛りのある日、Neovimの超有名プラグインが爆発四散した。null-ls.nvim はLSPの規格に合わないLinterやFormatterを言語サーバのように動作させられる画期的なクライアントだった。ほぼコピペの設定で完結する簡便さは同プラグインを事実上のデファクトスタンダードの座に押し上げた。しかし、そんな圧倒的権勢を誇るプラグインは驚くべきことにたった一人の開発者によって維持されていた。極度の多忙さゆえ彼がギブアップを宣言した瞬間、null-ls.nvimのリポジトリはたちまちアーカイブせしめられ、我々は否が応にでも事態を悟らざるをえなくなった。貢献に相応しい報酬を受け取れないのは誠に遺憾ながらOSS開発の宿痾である。