esm アジャイル事業部 開発者ブログ

永和システムマネジメントアジャイル事業部の開発者ブログです。

絶対パス、相対パス、そしてキーワードによる移動

koic です。こんにちは。

@b4b4r07 さんによるプロダクトである enhancd のユーザー体験が素晴らしいということで、今日はターミナル生活中のディレクトリ移動についての話です。

今回取り上げる enhancd は執筆時点 (2016年5月20日) で、bash / zsh / fish に対応しているため、ツールとの相性次第で多くのターミナル生活者が恩恵を受けることができます。

絶対パス相対パスによる移動への不満点と、それらの解決となるキーワードでの移動といった流れで話を進めます。

絶対パスによる移動

どのパスにいても、絶対パスを入力すれば一発で移動ができる反面、ディレクトリが深い場合は入力が面倒です。

cd /path/to/dir

そして、だいたい目的のディレクトリは深いです。 Ctrl+r で履歴から移動すれば入力の手間は減りますが、cd コマンド以外も履歴の探索対象となる点がいま一歩です。

相対パスによる移動

いまいるパスからの相対分のみ入力すれば移動できるため相対位置が近ければ入力が少ない反面、相対位置が遠いと移動先のパスの入力を考えるのが面倒です。

cd ../to/dir

隣のディレクトリであれば、../path で済みますがそれ以上になると ../../path などと書くことになりツリー構造を頭に浮かべるのが思いのほか疲れます。 tab 補完で頑張ることはできますが、ディレクトリ内のすべてのディレクトリから何度も選択していくのが大変です。

そしてキーワードによるパス移動

「そこで enhancd ですよ!」とここで素敵なツールの紹介です。

もし、以前 /path/to/dir に移動したことがあれば以下のように 移動先のパスのキーワード を入力すれば どこのパスにいても瞬時に移動 できます。

cd dir # どこのディレクトリにいても /path/to/dir ディレクトリに移動できる。複数の候補がある場合は peco などでフィルタリング。

絶対パス移動への不満である長い入力への手間、相対パス移動への不満であるディレクトリツリーの脳内組み立てが解決されました。

一度移動したことのあるディレクトリへの移動に手間を掛けない。『達人プログラマー』にも Don't Repeat Yourself とありますね。

早く導入すると、それだけ早く人生の無駄時間が減る

キーワードでの移動は、絶対パス相対パスに背反するものではなく、むしろ絶対パス相対パスによる移動を背景にしています。

移動履歴のあるパスは ~/.enhancd ディレクトリ内のファイルに保存されてキーワードの探索対象になります。つまり、早く導入すればするほど補完できる機会が増えますので、使ったことのない読者の方は一度お試し頂くと良いと思います。

インストールもとても簡単。私自身、毎日のディレクトリ移動時間をかなり削減する実感を体感できたライフチェンジングなイチオシツールです。

作者による Qiita 記事やプロダクトの README.md がとても丁寧に記されているため、詳しくはそちらをご参照下さい。