autojumpからpercolベースのディレクトリジャンプに移行する
autojump?
コマンドラインでよく移動するディレクトリに行くのに、autojumpやrupa/z等が有名ですが、percolでも同じような事ができるのでそちらに移行してみる話です
why
- autojumpも補完が効くけど、数が増えると最初から一覧がでて絞り込むUIの方がやりやすい
- なんとなく
percol版
percol で z / autojump のようにディレクトリ高速ジャンプ – Slip Ahead Loggingに書かれているもの殆どそのままですが、
移動したディレクトリが表示されるように少しだけ手を入れてます。
.cd_history_file
autojumpで使ってるcdの移動履歴はhomebrewで入れた場合は以下のような場所にあって、スコアtパス
が並んでるようなファイルが保存されています。(パスは重複しない)
~/.local/share/autojump/autojump.txt
22.360679775 /Users/azu/workspace/Objective-C/LTAPIRequest
22.360679775 /Users/azu/Dropbox/Public/information/slide/tkbjs
20.0 /Users/azu/Dropbox/workspace/Mac/project/GithubReader
これに対して、上記のpercolのzshスクリプトでは .cd_history_file
というファイルに
重複ありで移動したパスを追記していくスタイルになってるので、 autojump.txt
を以下の形式に変換します。
/Users/azu/workspace/Objective-C
/Users/azu/workspace/Objective-C
/Users/azu
/Users/azu/workspace/Objective-C
Nodeで適当にスクリプトを書いたので、autojump.txtを食わせれば標準出力に変換したものを流してくれます。
node index.js /path/to/autojump.txt > .cd_history_file
EventStreamを使って書くとこういうCLIでパイプを繋いで使うものがキレイに書けて便利な気がします。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。