/darallium/です!ご覧いただきありがとうございます. 😊
「CLI初心者でも感動するような,それでいて汎用性・拡張性の高いCLIツール」を紹介する7日間の5日目の記事です 🙇
本日は「シェルにもショートカットを」をテーマに,zoxideを紹介します
zoxide
zoxideは普段よくアクセスするサイトをブックマーク化して,ビュンビュン飛び回るためのツールである.古いユーザはautojumpやzと言えばわかるだろう.
installation
dependencies
- cargo / rust
- fzf
optional
- tmux
- nvim
- telescope.nvim
- zsh-autocomplete
windows
$ winget install ajeetdsouza.zoxide
linux
$ apt install zoxide
$ echo 'eval "$(zoxide init bash --hook prompt )"' >> ~/.bashrc
macOS
$ brew install zoxide
$ echo 'eval "$(zoxide init zsh --hook prompt )"' >> ~/.zshrc
チュートリアル
$ zoxide add <anywhere what you often access>
まずは,z <what you want to go>
でカレントディレクトリを飛び回ってcacheを貯めよう.z add <where you want to go>
でキャッシュを貯めることもできる.
$ zi
zi
コマンドで,溜まったキャッシュを表示することができる.左の数字がアクセスした回数, 右がパスだ.移動した回数が多いほど下に表示される仕組みになっている.
設定
zoxideは設定ファイルは存在せず,zoxide init
する前の環境変数によって設定が変化する..bashrcやらのinitよりも前に環境変数に値を割り当てて設定を変更しよう.注意をしなければならないのが,zoxide init
しなおさなければならないため,source ~/.bashrc
をする必要があることだ.
- _ZO_DATA_DIR: zoxideのキャッシュ先を指定できる.デフォルトではwindowsだと
%LOCALAPPDATA%
,macOSだと$HOME/Library/Application Support
,linuxだと$HOME/.local/share
である.RAM diskを使用する際は使うといいだろう. - _ZO_EXCLUDE_DIRS: キャッシュを除外する📁フォルダを指定できる./tmpとかはあまり行くことはないが除外するのもありだろう.
- _ZO_FZF_OPTS: fzfに渡すコマンドオプションを指定できる.
- _ZO_MANAGE: キャッシュするフォルダの最大数を指定できる.あまりお勧めはしない.
- _ZO_RESOLVE_SYMLINKS: リンクを飛ぶ際,そのリンクではなくリンク先のパスをキャッシュする.
また,部分的にはzoxide initにコマンドライン引数を与えることで設定できるコマンドがあり,
- --no-cmd: zとziをエイリアスを張るのを防ぐ.
- --hook : ziで飛ぶとき,キャッシュを自動で<プロンプト毎にする/ディレクトリが動く毎にする/しない>
- --cmd: zとziを変更する.POSIXとNushell以外では,cdを置き換えると違和感なく使えるかもしれない.
また,initするとき,実はいくつかのfunctionが定義されている.これらをbashrcなどにべた書きして改変することで,さらなる拡張が望まれる.筆者の好きなhatredholderさんの設定がreferencing[2]に掲載しているのでぜひ見てほしい.
あとがき
とりあえずワークスペースに飛んで,pullして,ふぅ作業をしよう.この前半の部分を簡単にしてくれるのがzoxideだ.また,設定どこだっけ?というのを解決してくれるものでもある.いつもやることはスクリプトに書き出すか,このような拡張ソフトウェアを導入することで自動化してしまおう.
references