zoxide について
ディレクトリナビゲーションパターンを追跡し、アクセス頻度でディレクトリをランク付けします。最小限の入力で頻繁にアクセスするフォルダへのジャンプショートカットを提供します。
主な機能
- 01フルパスを入力しなくても部分名でディレクトリにジャンプ
- 02ナビゲーションパターンと頻度を自動的に学習
- 03シェル初期化に統合して z コマンドショートカットを有効化
活用シーン
- 01わずかな文字でプロジェクトにジャンプしてディレクトリナビゲーション時間を削減
- 02頻繁にアクセスするフォルダのフルパス入力を繰り返さない
- 03インテリジェントディレクトリ補完でシェルワークフローを効率化
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にzoxide --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
Special thanks to:
|
zoxide
[![crates.io][crates.io-badge]][crates.io] [![Downloads][downloads-badge]][releases] [![Built with Nix][builtwithnix-badge]][builtwithnix]
zoxide は、z と autojump に触発されたより賢い cd コマンドです。
最も頻繁に使用するディレクトリを記憶するので、わずか数回のキー入力で
それらのディレクトリへ「ジャンプ」できます。
zoxide はすべての主要なシェルで動作します。
はじめに
![Tutorial][tutorial]
z foo # cd into highest ranked directory matching foo
z foo bar # cd into highest ranked directory matching foo and bar
z foo / # cd into a subdirectory starting with foo
z ~/foo # z also works like a regular cd command
z foo/ # cd into relative path
z .. # cd one level up
z - # cd into previous directory
zi foo # cd with interactive selection (using fzf)
z foo<SPACE><TAB> # show interactive completions (bash 4.4+/fish/zsh only)
マッチングアルゴリズムの詳細については[こちら][algorithm-matching]をご覧ください。
インストール
zoxide は 4 つの簡単な手順でインストールできます:
-
バイナリをインストールする
zoxide はほとんどの主要なプラットフォームで動作します。ご利用のプラットフォームが 以下に記載されていない場合は、[issue を作成][issues]してください。
Linux / WSL
> zoxide をインストールする推奨の方法は、インストールスクリプトを使用することです: > > ```sh > curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh > ``` > > または、パッケージマネージャーを使用することもできます: > > | ディストリビューション | リポジトリ | インストール手順 | > | ------------------- | ----------------------- | ----------------------------------------------------------------- | > | **_Any_** | **[crates.io]** | `cargo install zoxide --locked` | > | _Any_ | [conda-forge] | `conda install -c conda-forge zoxide` | > | _Any_ | [guix] | `guix install zoxide` | > | _Any_ | [Linuxbrew] | `brew install zoxide` | > | _Any_ | [nixpkgs] | `nix-env -iA nixpkgs.zoxide` | > | Alpine Linux 3.13+ | [Alpine Linux Packages] | `apk add zoxide` | > | Arch Linux | [Arch Linux Extra] | `pacman -S zoxide` | > | ~~Debian~~[^1] | ~~[Debian Packages]~~ | ~~`apt install zoxide`~~ | > | Devuan 4.0+ | [Devuan Packages] | `apt install zoxide` | > | Exherbo Linux | [Exherbo packages] | `cave resolve -x repository/rust`
`cave resolve -x zoxide` | > | Fedora 32+ | [Fedora Packages] | `dnf install zoxide` | > | Gentoo | [Gentoo Packages] | `emerge app-shells/zoxide` | > | Manjaro | | `pacman -S zoxide` | > | openSUSE Tumbleweed | [openSUSE Factory] | `zypper install zoxide` | > | ~~Parrot OS~~[^1] | | ~~`apt install zoxide`~~ | > | ~~Raspbian~~[^1] | ~~[Raspbian Packages]~~ | ~~`apt install zoxide`~~ | > | Rhino Linux | [Pacstall Packages] | `pacstall -I zoxide-deb` | > | Slackware 15.0+ | [SlackBuilds] | [Instructions][slackbuilds-howto] | > | Solus | [Solus Packages] | `eopkg install zoxide` | > | ~~Ubuntu~~[^1] | ~~[Ubuntu Packages]~~ | ~~`apt install zoxide`~~ | > | Void Linux | [Void Linux Packages] | `xbps-install -S zoxide` |macOS
zoxide をインストールするには、パッケージマネージャーを使用します:
リポジトリ インストール手順 [crates.io] cargo install zoxide --locked[Homebrew] brew install zoxide[conda-forge] conda install -c conda-forge zoxide[MacPorts] port install zoxide[nixpkgs] nix-env -iA nixpkgs.zoxideまたは、ターミナルで次のコマンドを実行します:
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | shWindows
> zoxide は PowerShell に加えて、Cygwin、Git Bash、MSYS2 上で動作するシェルでも利用できます。 > > zoxide をインストールする推奨の方法は `winget` を使用する方法です: > > ```sh > winget install ajeetdsouza.zoxide > ``` > > または、別のパッケージマネージャーを使用することもできます: > > | リポジトリ | 手順 | > | --------------- | ------------------------------------- | > | **[crates.io]** | `cargo install zoxide --locked` | > | [Chocolatey] | `choco install zoxide` | > | [conda-forge] | `conda install -c conda-forge zoxide` | > | [Scoop] | `scoop install zoxide` | > > Cygwin、Git Bash、または MSYS2 を使用している場合は、インストールスクリプトも利用できます: > > ```sh > curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh > ```BSD
zoxide をインストールするには、パッケージマネージャーを使用します:
ディストリビューション リポジトリ 手順 Any [crates.io] cargo install zoxide --lockedDragonFly BSD [DPorts] pkg install zoxideFreeBSD [FreshPorts] pkg install zoxideNetBSD [pkgsrc] pkgin install zoxideまたは、ターミナルで次のコマンドを実行します:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bashAndroid
zoxide をインストールするには、パッケージマネージャーを使用します:
リポジトリ 手順 [Termux] pkg install zoxideまたは、ターミナルで次のコマンドを実行します:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash -
シェルで zoxide をセットアップする
zoxide の使用を開始するには、お使いのシェルに追加します。
Bash
設定ファイル (通常は
~/.bashrc) の 末尾 に以下を追加します:eval "$(zoxide init bash)"Elvish
設定ファイル (通常は
~/.elvish/rc.elv) の 末尾 に以下を追加します:eval (zoxide init elvish | slurp)注意: zoxide は elvish v0.18.0 以上のみをサポートしています。
Fish
設定ファイル (通常は
~/.config/fish/config.fish) の 末尾 に以下を追加します:zoxide init fish | sourceNushell
環境ファイル (Nushell で
$nu.env-pathを実行すると見つかります) の 末尾 に以下を追加します:zoxide init nushell | save -f ~/.zoxide.nu次に、設定ファイル (Nushell で
$nu.config-pathを実行すると見つかります) の 末尾 に以下を追加します:source ~/.zoxide.nu注意: zoxide は Nushell v0.106.0 以上のみをサポートしています。
PowerShell
設定ファイル (PowerShell で
echo $profileを実行すると見つかります) の 末尾 に以下を追加します:Invoke-Expression (& { (zoxide init powershell | Out-String) })Tcsh
設定ファイル (通常は
~/.tcshrc) の 末尾 に以下を追加します:zoxide init tcsh > ~/.zoxide.tcsh source ~/.zoxide.tcshXonsh
> これを設定ファイル(通常は `~/.xonshrc`)の**末尾**に追加してください: > > ```python > execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide') > ```Zsh
これを設定ファイル(通常は
~/.zshrc)の末尾に追加してください:eval "$(zoxide init zsh)"補完を機能させるには、上記の行を
compinitの呼び出しの_後に_追加する必要があります。rm ~/.zcompdump*; compinitを実行して、補完キャッシュを再構築する必要があるかもしれません。任意の POSIX シェル
これを設定ファイルの末尾に追加してください:
eval "$(zoxide init posix --hook prompt)"注意: [Warp] は独自の補完を提供しているため、そちらでは
Space+Tabによる補完は サポートされていません。 -
fzf をインストールする (任意)
[fzf] はコマンドラインのあいまい検索ツールであり、zoxide が補完や 対話的な選択に使用します。[こちら][fzf-installation]からインストールできます。
注意: サポートされる fzf の最小バージョンは v0.51.0 です。
-
データをインポートする (任意)
現在これらのプラグインのいずれかを使用している場合は、データを zoxide に インポートするとよいでしょう。データファイルは、各プラグインの標準的な 規約に従って自動検出されます。
zoxide import <plugin>プラグイン コマンド atuin zoxide import atuinautojump zoxide import autojumpfasd zoxide import fasdz zoxide import zz.lua zoxide import z.luazsh-z zoxide import zsh-z
設定
フラグ
zoxide init を呼び出す際に、以下のフラグを使用できます:
-
--cmdzおよびziコマンドのプレフィックスを変更します。--cmd jを指定すると、コマンドは (j,ji) に変わります。--cmd cdを指定すると、cdコマンドを置き換えます。
-
--hook <HOOK>-
zoxide がディレクトリのスコアをインクリメントする頻度を変更します:
フック 説明 none決して実行しない promptシェルプロンプトごと pwd(デフォルト)ディレクトリが変更されるたびに
-
-
--no-cmd- zoxide が
zおよびziコマンドを定義しないようにします。 - これらの関数は、再定義したい場合に備えて、シェル内で
__zoxide_zおよび__zoxide_ziとして引き続き利用できます。
- zoxide が
環境変数
環境変数1は設定に使用できます。これらは zoxide init が呼び出される前に設定する必要があります。
-
_ZO_DATA_DIR-
データベースが保存されるディレクトリを指定します。
-
デフォルト値は OS によって異なります:
OS パス 例 Linux / BSD $XDG_DATA_HOME/zoxideまたは$HOME/.local/share/zoxide/home/alice/.local/share/zoxidemacOS $HOME/Library/Application Support/zoxide/Users/Alice/Library/Application Support/zoxideWindows %LOCALAPPDATA%\zoxideC:\Users\Alice\AppData\Local\zoxide
-
-
_ZO_ECHO- 1 に設定すると、
zは移動先のディレクトリに移動する前に、一致したディレクトリを出力します。
- 1 に設定すると、
-
_ZO_EXCLUDE_DIRS-
指定したディレクトリをデータベースから除外します。
-
これは [glob][glob] のリストとして提供され、OS 固有の文字で区切られます:
OS 区切り文字 例 Linux / macOS / BSD :$HOME:$HOME/private/*Windows ;$HOME;$HOME/private/* -
デフォルトでは、これは
"$HOME"に設定されています。
-
-
_ZO_FZF_OPTS- 対話的な選択中に [fzf] に渡すカスタムオプションです。オプションの一覧については [
man fzf][fzf-man] を参照してください。
- 対話的な選択中に [fzf] に渡すカスタムオプションです。オプションの一覧については [
-
_ZO_MAXAGE- データベース内のエントリの最大数を制限する [エージングアルゴリズム][algorithm-aging] を設定します。
- デフォルトでは、これは 10000 に設定されています。
-
_ZO_RESOLVE_SYMLINKS- 1 に設定すると、
zはディレクトリをデータベースに追加する前にシンボリックリンクを解決します。
- 1 に設定すると、
サードパーティ統合
| アプリケーション | 説明 | プラグイン |
|---|---|---|
| [aerc] | メールクライアント | ネイティブ対応 |
| [alfred] | macOS ランチャー | [alfred-zoxide] |
| [clink] | Windows 向けの改良版 cmd.exe | [clink-zoxide] |
| [emacs] | テキストエディタ | [zoxide.el] |
| [felix] | ファイルマネージャー | ネイティブ対応 |
| [joshuto] | ファイルマネージャー | ネイティブ対応 |
| [lf] | ファイルマネージャー | [wiki][lf-wiki] を参照 |
| [nnn] | ファイルマネージャー | [nnn-autojump] |
| [ranger] | ファイルマネージャー | [ranger-zoxide] |
| [raycast] | macOS ランチャー | [raycast-zoxide] |
| [rfm] | ファイルマネージャー | ネイティブ対応 |
| [sesh] | tmux セッションマネージャー | ネイティブ対応 |
| [superfile] | ファイルマネージャー | [ネイティブ対応][superfile-plugins] |
| [telescope.nvim] | Neovim 用のファジーファインダー | [telescope-zoxide] |
| [tmux-session-wizard] | tmux セッションマネージャー | ネイティブ対応 |
| [tmux-sessionx] | tmux セッションマネージャー | ネイティブ対応 |
| [vim] / [neovim] | テキストエディタ | [zoxide.vim] |
| [xplr] | ファイルマネージャー | [zoxide.xplr] |
| [xxh] | SSH 経由でシェル設定を転送 | [xxh-plugin-prerun-zoxide] |
| [yazi] | ファイルマネージャー | ネイティブ対応 |
| [zabb] | パスに対する最短クエリを検索 | ネイティブ対応 |
| [zesh] | zellij セッションマネージャー | ネイティブ対応 |
| [zsh-autocomplete] | zsh のリアルタイム補完 | ネイティブ対応 |
Footnotes
-
シェルで環境変数を設定する方法がわからない場合は、 [wiki][wiki-env] を参照してください。 [aerc]: https://github.com/rjarry/aerc [alfred]: https://www.alfredapp.com/ [alfred-zoxide]: https://github.com/yihou/alfred-zoxide [algorithm-aging]: https://github.com/ajeetdsouza/zoxide/wiki/Algorithm#aging [algorithm-matching]: https://github.com/ajeetdsouza/zoxide/wiki/Algorithm#matching [alpine linux packages]: https://pkgs.alpinelinux.org/packages?name=zoxide [arch linux extra]: https://archlinux.org/packages/extra/x86_64/zoxide/ [builtwithnix-badge]: https://img.shields.io/badge/builtwith-nix-7d81f7?logo=nixos&logoColor=white&style=flat-square [builtwithnix]: https://builtwithnix.org/ [chocolatey]: https://community.chocolatey.org/packages/zoxide [clink-zoxide]: https://github.com/shunsambongi/clink-zoxide [clink]: https://github.com/mridgers/clink [conda-forge]: https://anaconda.org/conda-forge/zoxide [crates.io-badge]: https://img.shields.io/crates/v/zoxide?logo=rust&logoColor=white&style=flat-square [crates.io]: https://crates.io/crates/zoxide [debian packages]: https://packages.debian.org/stable/admin/zoxide [exherbo packages]: https://gitlab.exherbo.org/exherbo/rust/-/tree/master/packages/sys-apps/zoxide [devuan packages]: https://pkginfo.devuan.org/cgi-bin/package-query.html?c=package&q=zoxide [downloads-badge]: https://img.shields.io/github/downloads/ajeetdsouza/zoxide/total?logo=github&logoColor=white&style=flat-square [dports]: https://github.com/DragonFlyBSD/DPorts/tree/master/sysutils/zoxide [emacs]: https://www.gnu.org/software/emacs/ [fedora packages]: https://src.fedoraproject.org/rpms/rust-zoxide [felix]: https://github.com/kyoheiu/felix [freshports]: https://www.freshports.org/sysutils/zoxide/ [fzf-installation]: https://github.com/junegunn/fzf#installation [fzf-man]: https://junegunn.github.io/fzf/reference/ [fzf]: https://github.com/junegunn/fzf [gentoo packages]: https://packages.gentoo.org/packages/app-shells/zoxide [glob]: https://man7.org/linux/man-pages/man7/glob.7.html [guix]: https://packages.guix.gnu.org/packages/zoxide/ [homebrew]: https://formulae.brew.sh/formula/zoxide [issues]: https://github.com/ajeetdsouza/zoxide/issues/new [joshuto]: https://github.com/kamiyaa/joshuto [lf]: https://github.com/gokcehan/lf [lf-wiki]: https://github.com/gokcehan/lf/wiki/Integrations#zoxide [linuxbrew]: https://formulae.brew.sh/formula-linux/zoxide [macports]: https://ports.macports.org/port/zoxide/summary [neovim]: https://github.com/neovim/neovim [nixpkgs]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/zo/zoxide/package.nix [nnn-autojump]: https://github.com/jarun/nnn/blob/master/plugins/autojump [nnn]: https://github.com/jarun/nnn [opensuse factory]: https://build.opensuse.org/package/show/openSUSE:Factory/zoxide [pacstall packages]: https://pacstall.dev/packages/zoxide-deb [pkgsrc]: https://pkgsrc.se/sysutils/zoxide [ranger-zoxide]: https://github.com/jchook/ranger-zoxide [ranger]: https://github.com/ranger/ranger [raspbian packages]: https://archive.raspbian.org/raspbian/pool/main/r/rust-zoxide/ [raycast]: https://www.raycast.com/ [raycast-zoxide]: https://www.raycast.com/mrpunkin/raycast-zoxide [releases]: https://github.com/ajeetdsouza/zoxide/releases [rfm]: https://github.com/dsxmachina/rfm [scoop]: https://github.com/ScoopInstaller/Main/tree/master/bucket/zoxide.json [sesh]: https://github.com/joshmedeski/sesh [slackbuilds]: https://slackbuilds.org/repository/15.0/system/zoxide/ [slackbuilds-howto]: https://slackbuilds.org/howto/ [solus packages]: https://github.com/getsolus/packages/tree/main/packages/z/zoxide/ [superfile]: https://github.com/yorukot/superfile [superfile-plugins]: https://superfile.dev/list/plugin-list/ [telescope-zoxide]: https://github.com/jvgrootveld/telescope-zoxide [telescope.nvim]: https://github.com/nvim-telescope/telescope.nvim [termux]: https://github.com/termux/termux-packages/tree/master/packages/zoxide [tmux-session-wizard]: https://github.com/27medkamal/tmux-session-wizard [tmux-sessionx]: https://github.com/omerxx/tmux-sessionx [tutorial]: contrib/tutorial.gif [ubuntu packages]: https://packages.ubuntu.com/jammy/zoxide [vim]: https://github.com/vim/vim [void linux packages]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/zoxide [warp]: https://www.warp.dev [wiki-env]: https://github.com/ajeetdsouza/zoxide/wiki/HOWTO:-set-environment-variables "環境変数の設定方法" [xplr]: https://github.com/sayanarijit/xplr [xxh-plugin-prerun-zoxide]: https://github.com/xxh/xxh-plugin-prerun-zoxide [xxh]: https://github.com/xxh/xxh [yazi]: https://github.com/sxyazi/yazi [zabb]: https://github.com/Mellbourn/zabb [zesh]: https://github.com/roberte777/zesh [zoxide.el]: https://gitlab.com/Vonfry/zoxide.el [zoxide.vim]: https://github.com/nanotee/zoxide.vim [zoxide.xplr]: https://github.com/sayanarijit/zoxide.xplr [zsh-autocomplete]: https://github.com/marlonrichert/zsh-autocomplete ↩