Subscribed unsubscribe Subscribe Subscribe

z.shを使ってみる

Zsh

autojumpを使ってみる - すぎゃーんメモから1年ちょい。
autojumpには非常にお世話になっていたけれども、どうも最近ちょっと重いな、と感じることもあり、そういえばz.shなるものが代替として存在しているという話を聞いたことがあったし、ちょっと使ってみようかな、と思い、入れてみた。

brewでinstallできるようなので、それで。

$ brew install z
==> Downloading https://github.com/rupa/z/tarball/v1.5
######################################################################## 100.0%
==> Caveats
For Bash or Zsh, put something like this in your $HOME/.bashrc or $HOME/.zshrc:
  . `brew --prefix`/etc/profile.d/z.sh

ZSH USERS BACKWARD COMPATIBILITY WARNING:
 z now handles 'precmd' set up for zsh. z (<=1.3) users using zsh should
 remove the precmd function that was described in the installation
 instructions for previous versions.

In short, this:
  . /path/to/z.sh
  function precmd () {
   _z --add "$(pwd -P)"
  }

should now be:
  . `brew --prefix`/etc/profile.d/z.sh
==> Summary

と。以前のものはprecmdを自分で書いてやる必要があったのかな?今は勝手にやってくれるようなので、~/.zshenv

if which brew > /dev/null; then
    _Z_CMD=j
    source $(brew --prefix)/etc/profile.d/z.sh
fi

とだけ書いておいた。_Z_CMDに指定したものにaliasが貼られる仕組みらしい。デフォルトではzだけど、さすがに使いにくいのでjにしておいた。

しばらくこれで使い続けてみるつもり。

余談

設定したものの、どうも動かないなぁと思ったら、自分の~/.zshrcprecmd_functionsを上書きしてしまっていたからだった。
https://github.com/sugyan/dotfiles/blob/53bacac40220a61baa34fe5fb30fbcc5ee5d1c9f/.zshrc#L22

function precmd_vcs() {
    vcs_info
    RPROMPT=$'%{\e[32m%}%~'${vcs_info_msg_0_}$'%{\e[m%}'
}
precmd_functions=(precmd_vcs)

vcs_infoを使って右プロンプトに表示させるやつ(zshでgitのbranch名をPROMPTに表示させるようになるまで - すぎゃーんメモ)。

z.sh_z_precmdprecmd_functionsに追加してくれているのにこいつで上書きしてしまっているからデータが追加されない。
ということで

-precmd_functions=(precmd_vcs)
+precmd_functions+=(precmd_vcs)

と修正して解決。