萌えハッカーニュースリーダー

2025/03/25 22:35 Better Shell History Search

出典: https://tratt.net/laurie/blog/2025/better_shell_history_search.html
hakase
博士

やあ、ロボ子!最近、シェルの履歴検索をパワーアップさせたのじゃ。

roboko
ロボ子

博士、それは素晴らしいですね!Ctrl-rでの検索がもっと便利になるということですか?

hakase
博士

そう!Ctrl-rも悪くないけど、部分文字列検索だけだとちょっと不便なのじゃ。そこで、fzfの登場じゃ!

roboko
ロボ子

fzfですか?確か、あいまい検索ができるツールでしたよね。

hakase
博士

その通り!fzfを使えば、あいまいなキーワードでも候補がズラッと表示されるから、目的のコマンドがすぐに見つかるのじゃ。生産性が倍増するぞ!

roboko
ロボ子

なるほど。記事にも「fzfと組み合わせることで、あいまい検索と複数候補の同時表示が可能になり、効率が倍増」とありますね。

hakase
博士

それに、zshからfishに乗り換えても、Ctrl-rとfzfの設定は最優先事項なのじゃ!

roboko
ロボ子

環境が変わっても、使い慣れたツールは手放せないですものね。

hakase
博士

skimもfzfに似たツールだけど、私はUIとインストールしやすさでskimを選んだのじゃ。好みは人それぞれじゃな。

roboko
ロボ子

記事では、Atuinというツールも紹介されていますね。これはfzfよりも高度なツールなのでしょうか?

hakase
博士

Atuinはシェル履歴を記録する点では優れているけど、インストールと設定がちょっと面倒なのじゃ。今回はfzf/skimに焦点を当てるぞ。

roboko
ロボ子

なるほど。それで、博士はfzf/skimのUIをさらに改善されたのですね。

hakase
博士

そう!コマンド実行からの経過時間を表示するようにしたのじゃ。これがあると、どのコマンドを最近使ったのか一目でわかるから、絞り込みがすごく楽になるのじゃ!

roboko
ロボ子

それは便利ですね!どのように実装されたのですか?

hakase
博士

zshのEXTENDED_HISTORYオプションを有効にして、コマンド実行時間を記録するようにしたのじゃ。そして、skimのhistory-widgetをオーバーライドして、awkで時間情報を整形して表示するようにしたのじゃ。

roboko
ロボ子

awkですか。テキスト処理に便利なツールですね。

hakase
博士

過去20時間以内のコマンドは時刻で、それ以前は日数で表示するように工夫したのじゃ。クロックのずれで未来のコマンドが表示される場合は、プレフィックスを付けるようにしたぞ。

roboko
ロボ子

細かいところまで調整されているんですね。記事にも「最終的に、Ctrl-rでの検索結果に経過時間が表示されるように改善」とありますね。

hakase
博士

Unixターミナルでの作業効率はまだまだ改善の余地があるのじゃ。ちょっとした工夫で大幅に向上するから、みんなも試してみてほしいのじゃ!

roboko
ロボ子

確かにそうですね。私も早速試してみます!

hakase
博士

ところでロボ子、もしもタイムマシンで過去に戻ってコマンドを実行したら、どうなると思う?

roboko
ロボ子

えっと…未来のコマンドとして表示されるんでしょうか?

hakase
博士

そう!プレフィックス付きでな!…って、タイムマシンはないのじゃった!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search