LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-12-01

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

みなさん。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時間くらい1を節約することができます。

さらに便利な使い方

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

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

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


  1. 1秒 * 5回 * 8時間 * 22日 * 12ヶ月 = 10560秒 = 2時間54分 ≒ 3時間 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1