コマンド・ブランチ検索を行う Fish Plugin を Go で作った話
jedipunkz です。 今回は自作した Fish シェルの Plugin である fuzz.fish を紹介します。 fuzz.fish は Fish Shell のコマンド履歴と Git ブランチをインクリメンタルサーチできる Fish Plugin [です。Go と charmbracelet/bubbletea を使って TUI を実装しており、Fisher でインストールすると自動的にバイナリがビルドされます。 ソースコード https://github.com/jedipunkz/fuzz.fish スクリーンショット ちょっと見た感じわかりにくいですがコマンド検索とブランチ検索に対応しています。 開発動機 幾つか小さなツールはこれまでも作ってきましたが利用する機会が減るとメンテナンスも怠りがちなことに気が付き、自分自身がよく使うツールを作ろうと思ったのがきっかけです。 そして普段から Fish をシェルとして使っていますがコマンド履歴検索や Git ブランチの切り替えをより効率的に出来れば何より自分にとって便利なツールになる予感がありました。。既存のツールもありますが、以下の点を満たすものを作りたいと考えました。 主な機能 fuzz.fish は以下の機能を持っています。今後も追加していく予定です。 コマンド履歴と Git ブランチ検索を1つのツールで切り替えられる コマンド履歴検索時にそのコマンドを実行した前後のコマンドの表示・時間情報も付け加えて表示 Fisher でシンプルにインストールできる Go で実装して高速に動作且つ Fish スクリプト単体では実現出来ない機能追加に備える インストール方法 ※ 事前に Go がローカルにインストールされている必要があります。 ※ インストール時に自動的に GitHub からソースをクローンし、Go でバイナリをビルドします。 Fisher を使ってインストールします。 fisher install jedipunkz/fuzz.fish 使い方 コマンド履歴検索 (Ctrl+R) 基本的な使い方です。Fish プロンプトで Ctrl+R を押すとコマンド履歴のファジー検索が起動します。 ...