Dance with Agents

cdを打つのが面倒になったら

実践

その前に、道具は要らないかもしれません

cdとパスの話で書いたとおり、長いパスはTabキーで補完できます。まずはTab補完に慣れてみてください。 それでだいたい足ります。

それでも面倒になるのは、行き先がいつも同じで、しかもパスが深いときです。

cd ~/webbuild/dancewithagents
cd ~/webbuild/clients/2026/site-renewal

こういうのを毎日打っていると、さすがに嫌になります。ここから先が道具の出番です。

いちばん手軽なのは、alias

新しい道具をインストールする前に、すでにある仕組みで済ませられます。aliasという救世主の応用です。

alias dwa="cd ~/webbuild/dancewithagents"

これを~/.zshrcに書いておけば、dwaの3文字でそのフォルダに飛べます。行き先が数えるほどしかないなら、これで完結します。 何もインストールしなくていいのが最大の利点です。

限界は、行き先が増えてくると、alias自体を覚えていられなくなるところです。そうなったら次へ進みます。

zoxide — 行った場所を覚えてくれる

zoxideは、自ら「より賢いcdコマンド」と名乗っている道具です。

やっていることはシンプルで、あなたがどのフォルダによく行くかを記録しておいて、名前の一部を打つだけでそこへ飛ばしてくれます。

z dance

これだけで~/webbuild/dancewithagentsに移動します。パスを書く必要も、aliasを登録する必要もありません。

インストールの手順

Macの場合。

brew install zoxide

Windowsの場合。

winget install ajeetdsouza.zoxide

⚠️ インストールしただけでは動きません

ここが最大の落とし穴です。インストールしただけではzコマンドは使えません。 シェルの設定ファイルに1行足して、初めて有効になります。

Macで標準のzshを使っている場合、~/.zshrcのいちばん最後に、この1行を足します。

eval "$(zoxide init zsh)"

書き足したらsource ~/.zshrcで反映させます(このあたりはaliasの記事と同じ手順です)。

「いちばん最後に」というのが地味に重要で、公式にも「compinitが呼ばれた後に」と条件が書かれています。ファイルの途中に書くと動かないことがあります。

bashを使っているなら、~/.bashrcの最後にこちら。

eval "$(zoxide init bash)"

WindowsのPowerShellの場合は、まず設定ファイルの場所を調べます。

echo $profile

表示されたファイルに、この1行を書き足します。

Invoke-Expression (& { (zoxide init powershell | Out-String) })

最初はまだ賢くありません

zoxideは「行ったことのある場所」しか知りません。 インストールした直後は記録がゼロなので、z danceと打っても何も起きません。

しばらくは普通にcdで移動してください。使っているうちに記録がたまり、だんだん短い言葉で飛べるようになっていきます。育てる道具だと思っておくと、期待とのズレがありません。

記録の付き方にも仕組みがあって、「よく行く」と「最近行った」の両方が順位に反映されます。 1時間以内に行った場所は大きく優遇され、1週間以上行っていない場所はだんだん忘れられていきます。生活の変化に付いてきてくれる、ということです。

使い方のコツ

z fooは「fooで始まるフォルダ」ではなく「fooを含む中で一番よく行くフォルダ」に飛びます。ここは勘違いしやすいところです。

複数の言葉を並べて絞り込むこともできます。

z clients renewal

普通のcdと同じ書き方も通ります。

z ~/webbuild     # パスをそのまま書いてもいい
z ..             # 1つ上へ
z -              # さっきいた場所へ

つまり、cdの代わりとしてそのまま使えます。 慣れてきたらcdという名前ごと置き換えてしまうこともできて、その場合は初期化の行をzoxide init zsh --cmd cdのように書き換えます。以降はcd danceで飛べるようになります。

ziと打つと、候補を一覧から選べる対話モードになります。ただしこれには後述のfzfを別途インストールしておく必要があります。

fzf — 一覧から選んで移動する

fzfは、絞り込み検索の道具です。zoxideとは発想が違って、記録に頼らず、その場で候補を絞って選びます。

brew install fzf          # Mac
winget install fzf        # Windows

シェル統合を有効にすると、キー操作が使えるようになります。cd支援として効くのはこれです。

操作 何が起きるか
Alt + C フォルダを一覧から絞り込んで選び、そこへ移動する
Ctrl + T ファイルやフォルダを選んで、そのパスを今打っているコマンドに貼り付ける

Ctrl + Tはcd以外にも使えるので便利です。「このファイルを開きたいけどパスが長い」というとき、コマンドの途中でCtrl + Tを押して選ぶだけで済みます。

ひとつ注意点があります。 fzfのシェル統合が公式に対応しているのは、bash・zsh・fish・Nushellです。WindowsのPowerShellは対象外なので、Alt + Cのようなキー操作はそのままでは使えません。WindowsでこれをやりたいならWSL(Windowsの中でLinuxを動かす仕組み)が必要になります。

どれを選ぶか

状況 おすすめ
行き先が2〜3か所 alias
行き先が増えてきた・毎日同じところに通う zoxide
行き先が毎回違う・その場で探したい fzf
Windowsで、WSLはインストールしていない alias か zoxide(fzfのキー操作は使えない)

併用もできます。 よく行く場所はzoxideに任せて、探したいときはfzf、というのが落ち着きどころです。

昔からある似た道具について

z(rupa/z)やautojumpという、同じ発想の先輩にあたる道具もあります。zoxideの説明にも「zとautojumpに着想を得た」と書かれています。今から始めるならzoxideで問題ありませんが、すでにこれらを使っている場合は、記録をzoxideに引き継げます。

zoxide import z            # rupa/z から
zoxide import autojump     # autojump から

なおfasdという道具も見かけますが、こちらは開発が終了してアーカイブ済みです。今から選ぶ理由はありません。

まとめ

cd支援の道具は、覚えることを増やす道具ではなく、覚えていなくても行けるようにする道具です。aliasと同じ発想で、パスという「覚えていられないもの」を機械に肩代わりさせています。

慌ててインストールする必要はありません。「またこの長いパスを打つのか」と思った日が、インストールする頃合いです。

ターミナル / UNIXコマンドの記事

ターミナル / UNIXコマンドのページへ →