phoenix-powerzsh に追加された cdr を使います。

私の場合は、z hoge<Tab>または、Ctrl+jjでディレクトリ移動をしています。前者はzを使います。後者はzawです。

あと、ファイルを開く動作は、Ctrl+oCtrl+ooです。前者はApplicationを検索します。後者はvimで開きます。

ちなみに、プロンプトに何のコマンドが実行されたのかの表示を残したい場合は、bindkey -s{v, e}を使いましょう。

~/.zshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# z {{{
# brew install z
. `brew --prefix`/etc/profile.d/z.sh
compctl -U -K _z_zsh_tab_completion ${_Z_CMD:-z}
# }}}

# cdr {{{
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
zstyle ':completion:*:*:cdr:*:*' menu selection
zstyle ':completion:*' recent-dirs-insert both
zstyle ':chpwd:*' recent-dirs-max 500
zstyle ':chpwd:*' recent-dirs-default true
zstyle ':chpwd:*' recent-dirs-pushd true
# }}}

# zaw-cdr
# git clone https://github.com/zsh-users/zaw
# source /path/to/zaw.zsh
bindkey '^j^j' zaw-cdr

# percol-open-vim
# git clone https://github.com/mooz/percol
# sudo python setup.py install
bindkey -sv '^o^o' 'vim $(ls | percol)\n'

# mac-open-application {{{
case "${OSTYPE}" in
# MacOSX
darwin*)
  function openapp() {
    BUFFER="open -a "
    CURSOR=$#BUFFER
  }
  zle -N openapp
  bindkey '^o' openapp
;;
esac
# }}}

# open-commmand {{{
case "${OSTYPE}" in
freebsd*|darwin*)
    alias o="open"
    ;;
linux*)
    alias open="xdg-open"
    #alias open="gnome-open"
cygwin*)
    alias open="cygstart"
    ;;
esac
# }}}

こんな感じで、percolを使うことも多いのですが、zawも使います。

印象ですが、percolはシンプルな設計で、非常に組み込みやすいため、自作ツールのインターフェイスとして利用する場面が多く、zawは、普段使いと言った感じで利用する場面が多いです。

ちなみに、 zaw で z の history を使用したい場合は、以下のプラグインを使いましょう。

1
2
3
4
5
$ cd /path/to/zaw/source

$ curl -O https://raw.githubusercontent.com/lovingly/dotfiles/master/zsh.d/zaw/zaw-z.zsh

$ echo "bindkey '^f^f' zaw-z" >> ~/.zshrc