0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zshの名前付きディレクトリがとても便利

Posted at

上記ブログを写経した内容です。


名前付きディレクトリの使い方

名前付きディレクトリを使うには、setopt autonamedirsした上で、変数に/から始まる文字列を代入します。

$ setopt autonamedirs
$ vim_dir=/usr/share/vim/vim74/

$ cd ~vim_dir

このようにすると、vim_dirにすぐ移動できるようになります。

もうひとつの定義方法

ですが、変数を介すのは気持ち悪いですね。 直接名前付きディレクトリを設定することもできます。

$ hash -d vim_dir=/usr/share/vim/vim74/

$ cd ~vim_dir

少しいい感じの定義になりました。

楽をしたい

ただ、これだと毎回~を入力しなくてはいけなくて面倒ですね。CDABLE_VARSオプションを指定すると、~を省略することが出来ます。

$ setopt CDABLE_VARS
$ hash -d vim_dir=/usr/share/vim/vim74/

$ cd vim_dir

これでかなり使いやすくなりましたね。

もっと楽をしたい

また、AUTO_CDオプションをセットすると、ディレクトリ名だけでcdすることができるようになります。

$ setopt CDABLE_VARS
$ setopt AUTO_CD
$ hash -d vim_dir=/usr/share/vim/vim74/

$ vim_dir

AUTO_CDは、名前付きディレクトリだけでなく、普通のディレクトリでもディレクトリ名だけで移動できるようになるオプションです。

楽に定義をしたい

名前付きディレクトリの定義をする時には、やはりディレクトリの存在確認をしたいですよね。 そのほうが、複数環境で使いまわしやすいzshrcになるでしょう。

というわけで、適当に関数を書いてみました。

function name_dir() # dir, name
{
  local dir=$1
  local name=$2

  if [ -d $dir ]; then
    hash -d $name=$dir
    return 0
  else
    return 1
  fi
}

下のようにして使います(実際に使っている例です)。

name_dir ~/dotfiles/ d
name_dir ~/project/ p
name_dir ~/.vim/bundle/ v

こうすると、dだけで~/dotfiles/に飛べるようになります。めっちゃ便利。


よくいくディレクトリが深い階層にある人なんかはとても便利に使えると思います。

ぽっけ (id:Pocke)

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?