zshでこの設定は当然もうしてあるよね?①:auto_cd

Shell Script

ブログ記事を書くことを前日に思い出して、しかもいい感じのネタが思いつかなかったので、昔書いたQiitaの記事の転載です。
元の記事:「zshでこの設定は当然もうしてあるよね?①:auto_cd」

※タイトルにとありますが,次回以降がある訳じゃない(気が向いたら書く)ので,そのあたりはご了承ください。

みなさん。zshを使っていますか。zshは好きですか。自分は大好きです。
自分がzshを使う理由として,「楽がしやすい」という点がかなり大きいです。
zshには楽をするための機能がたくさんありますが,その中でも自分が特に便利だと感じている機能の auto_cdを紹介します。

スポンサーリンク

auto_cd とは

auto_cdは,「ディレクトリ名を入力したら自動でcdしてくれる」機能です。

% pwd
/home/stmkza
% ls -F
some_dir1/ some_dir2/ some_dir3/

こんな状態でsome_dir1に移動したいとき,auto_cdがOFFの場合

% cd some_dir1
% pwd
/home/stmkza/some_dir1

と入力しますが,auto_cdがONの場合は

% some_dir1
% pwd
/home/stmkza/some_dir1

と入力するだけで移動することができます。

設定方法

auto_cd の設定をするのはとても簡単で,.zshrc

setopt auto_cd

と書くだけで有効化できます。

利点

cd の3文字を入力しなくてもすみます。たった3文字ですが,それを1回入力するのに1秒かかり,1時間に5回cdコマンドを使って,1日8時間の作業を月22日すると仮定すると,1年で3時間くらい11秒 * 5回 * 8時間 * 22日 * 12ヶ月 = 10560秒 = 2時間54分 ≒ 3時間を節約することができます。はい、ものすごく微妙ですね(実際にはそんなにcdコマンド使わないだろうし……)

さらに便利な使い方

auto_cdは標準ではカレントディレクトリ内のディレクトリしか指定できませんが,どこからでもそこに一瞬で移動できるようにしたいディレクトリなどがありますよね。自分はGitHubからcloneしたディレクトリを~/repos/github.com/以下に置いているので,自分のレポジトリである~/repos/github.com/stmkza/以下のディレクトリにはどこからでも移動できると便利です。また,ホームディレクトリ直下の場所にも直接移動したいです。

そんなときには環境変数cdpathに移動したいディレクトリ名を↓のように書いたらそのディレクトリにも移動できます。

export cdpath=(~/repos/github.com/stmkza ~)

ただし,この設定をすると,cd を使って移動したときにもそのディレクトリに移動してしまうので,そこは注意が必要です。

コメント

タイトルとURLをコピーしました