handlename's blog

コード片など

ディレクトリの履歴からcanythingで絞り込んで移動する

こういうエイリアスを設定してみた。

alias cda='cd `pushd | tr " " "\n" | sed -e "s/~/\/Users\/handle/" | canything`'

ディレクトリの履歴を対象に、canythingで絞り込んで移動先を選ぶ。 ディレクトリを飛び回るときは cd -[TAB] するよりも便利。

以下うまく行かなかった部分メモ。

  • canything | xargs cd じゃうまく行かなかった (xargsに-Pを付けてみると xargs: max. processes must be >0 と表示される)
  • ~/path/to/dir の形式をcdに渡しても cd: no such file or directory: ~/path/to/dir って言われるのでしかたなく置換してる。パスの重複 (/Users/handle/hoge~/hoge) がなくなるのでまあいいか
  • tmux の window-splitshell-command 部分に書きたかったんだけど、 shell-command が実行されるのは tmux が実行されているシェルで、pushd が今いるシェルと一致してなかったので断念