コンテンツにスキップ

zoxide - スマートなcd代替 チートシート

zoxide - スマートなcd代替 チートシート

Section titled “zoxide - スマートなcd代替 チートシート”

最も使用頻度の高いディレクトリを学習し、わずか数回のキーストロークでジャンプできるスマートなcdコマンド。訪問の頻度と最近性を組み合わせた「frecency」アルゴリズムを使用します。

プラットフォームコマンド
macOS (Homebrew)brew install zoxide
Ubuntu/Debiansudo apt install zoxide
Arch Linuxsudo pacman -S zoxide
Fedora/RHELsudo dnf install zoxide
Windows (Winget)winget install ajeetdsouza.zoxide
Windows (Scoop)scoop install zoxide
Windows (Chocolatey)choco install zoxide
Cargo (全プラットフォーム)cargo install zoxide --locked
Condaconda install -c conda-forge zoxide
Nixnix-env -iA nixpkgs.zoxide
インストールスクリプトcurl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

シェル設定ファイルに適切な行を追加:

シェル設定ファイル追加するコマンド
Bash~/.bashrceval "$(zoxide init bash)"
Zsh~/.zshrceval "$(zoxide init zsh)"
Fish~/.config/fish/config.fishzoxide init fish | source
PowerShellプロファイルInvoke-Expression (& { (zoxide init powershell | Out-String) })
Elvish~/.elvish/rc.elveval (zoxide init elvish | slurp)
Nushellenv.nuzoxide init nushell | save -f ~/.zoxide.nu
Xonsh~/.xonshrcexecx($(zoxide init xonsh))
コマンド説明
z foo「foo」に一致する最高ランクのディレクトリにジャンプ
z foo bar「foo」と「bar」の両方に一致するディレクトリにジャンプ
z ~/projects正確なパスにジャンプ(通常のcdと同様に動作)
z ..1つ上のディレクトリに移動
z -前のディレクトリに戻る
zi foofzfを使用したインタラクティブな選択(複数の一致がある場合)
zi追跡されたすべてのディレクトリからインタラクティブに選択

zoxideはキーワードでディレクトリパスをマッチングします。フルパスを入力する必要はありません:

# 頻繁に/home/user/projects/my-appを訪問する場合
z my-app      # 直接そこにジャンプ
z proj app    # これも動作(パス内の両方の単語にマッチ)
z app         # 最も頻繁な「app」ディレクトリの場合に動作

スコアリング: ディレクトリは訪問時にポイントを獲得します。最近の訪問はより高いスコアを得ます。使用されていないディレクトリは時間とともに減衰します。

コマンド説明
zoxide add /path/to/dirディレクトリをデータベースに手動で追加
zoxide remove /path/to/dirディレクトリをデータベースから削除
zoxide editデータベースを$EDITORで開いて手動編集
zoxide query foo「foo」の最良の一致を表示(ジャンプせずに)
zoxide query -lデータベース内のすべてのディレクトリをスコアでソートして表示
zoxide query -l foo「foo」の全ての一致をスコアと共に表示
zoxide query -ls fooスコアでソートされた一致をスコアと共に表示
zoxide query -i fooインタラクティブ選択モード

他のディレクトリジャンパーから移行する場合、データベースをインポート:

コマンド説明
zoxide import --from=autojump /path/to/dbautojumpからインポート
zoxide import --from=z /path/to/dbz/z.shからインポート
zoxide import --from=fasd /path/to/dbfasdからインポート

インポートするデフォルトのデータベースの場所:

  • autojump: ~/.local/share/autojump/autojump.txt
  • z: ~/.z
  • fasd: ~/.fasd
変数デフォルト説明
_ZO_DATA_DIRプラットフォーム固有データベースを保存するディレクトリ
_ZO_ECHO0ナビゲート前にマッチしたディレクトリを表示(有効化は1
_ZO_EXCLUDE_DIRSなし除外するディレクトリ(コロン区切りパス)
_ZO_FZF_OPTSなしインタラクティブモードでfzfに渡すカスタムオプション
_ZO_MAXAGE10000データベース内のエントリの最大数
_ZO_RESOLVE_SYMLINKS0パスを保存する前にシンボリックリンクを解決(有効化は1
オプション説明
--cmd jコマンド名をzからjに変更(jjiを作成)
--hook prompt各プロンプトでスコアを更新(デフォルト)
--hook pwdディレクトリ変更時のみスコアを更新
--hook noneスコアを自動更新しない
--no-cmdzziエイリアスを作成しない(__zoxide_zを直接使用)
# 例:「z」の代わりに「j」を使用し、ディレクトリ変更時のみ更新
eval "$(zoxide init bash --cmd j --hook pwd)"
# ホームディレクトリとtmpを追跡から除外
export _ZO_EXCLUDE_DIRS="$HOME:/tmp:/private/tmp"
# カスタムfzfプレビューを使用
export _ZO_FZF_OPTS="--preview 'eza -la --icons {2..}' --preview-window=right:40%"
# 部分名でプロジェクトディレクトリにジャンプ
z myproject

# 複数のキーワードで曖昧性を解消
z work api          # ~/work/projects/api-serverにマッチ

# 確信が持てない場合はインタラクティブモード
zi deploy           # 一致するすべてのディレクトリでfzfを開く

# zoxideが最良の一致と判断するものを確認
zoxide query deploy

# 追跡されたすべてのディレクトリとそのスコアを表示
zoxide query -ls

# 削除されたディレクトリをデータベースからクリーンアップ
zoxide query -l | while read -r line; do
  dir=$(echo "$line" | awk '{print $2}')
  [ ! -d "$dir" ] && zoxide remove "$dir"
done

ziを使用すると、zoxideは自動的にインタラクティブ選択にfzfを使用します。これが動作するためにはfzfをインストールしてください。

zoxideはタブ補完を提供します。シェル統合後、z の後にTabを押すと一致するディレクトリが提案されます。

機能cdzoxide (z)
正確なパスに移動cd /full/pathz /full/path
部分一致なしあり(z proj
Frecencyランキングなしあり
インタラクティブ選択なしあり(zi
前のディレクトリcd -z -
学習動作なし使用から学習
データベースインポート該当なしautojump、z、fasd
問題解決策
zコマンドが見つからないシェル設定にシェル統合行があることを確認し、シェルを再起動
一致が見つからない最初にcdでディレクトリを訪問 — zoxideは時間とともに学習
間違ったディレクトリがマッチより具体的なキーワードを使用:z apiの代わりにz work api
データベースが大きすぎる_ZO_MAXAGEを下げるか、zoxide editを実行してクリーンアップ