PIYO - Tech & Life -

tmuxやscreenでも使えるpopd、pushdの強化版

Shell Tips

ターミナルでのディレクトリ移動は毎回タイプして頑張ってたんですがいよいよそれも面倒に思えて来ました。最終的に便利なものに出会ったのでそれを紹介します。

pushd、popd

まず、僕が知っていた方法である、シェルの組み込みのコマンドのpushd popdを考えてみました。

  • pushd → 引数に渡したディレクトリをディレクトリスタック(履歴のようなもの)に入れる
  • popd → ディレクトリスタックに最後に追加したディレクトに移動する

さっきまで作業していたディレクトリに戻るなどの一部のケースではこのコマンドでも十分やっていけるなーと思っていたものの使ってはいなかったので、これで行ってみよう!と思ったんですが、このpushd popdだと問題があることがわかりました。

普段ターミナルを使うときはtmuxを使って複数セッション?っていうんですかね、複数の窓を立ちあげて使っています。pushdやpopdは各ウィンドウごとに独立しているみたいで、別のウィンドウでpushdしたディレクトリにはpopdできないようです。

ナンテコッタイ/(^o^)\

ググったらあったよ!

もっといいのがありました。

rcmdnk/sd_cl

GitHubで公開している方がいたのでそのまま利用させてもらいました。

元記事

ターミナルでのディレクトリ移動を保存、取り出しする #screen - rcmdnk’s blog

インストールと設定

インストールにはHomebrewが使えます。

$ brew tap rcmdnk/rcmdnkpac
$ brew install sd_cl

.bashrc に追記が必要です。

source /usr/local/etc/sd_cl

使い方

保存して置いたディレクトリを選ぶのにいくつか方法があります。個人的には$ cl -cで一覧表示したディレクトリ一覧からvi風のjkで選択して移動というのが超いけてます。

ディレクトリを保存する

$ sd # カレントディレクトリを保存

最後に保存したディレクトリに移動

$ cl

最後からN番目のディレクトリに移動

$ cl -n N

保存ディレクトリ一覧表示

$ cl -l

一覧から選択して移動

$ cl -c

クリア

$ cl -C