hitode909の日記

趣味はマリンスポーツですの日記です

cd系コマンド

ディレクトリ移動するのが難しいので,いくつかコマンドを作って,いまどこに居るかに関係なく相対パスで移動できるようにしました.

u

function u() {
    cd ./$(git rev-parse --show-cdup)
    if [ $# = 1 ]; then
        cd $1
    fi
}

これは,Gitのリポジトリのトップから相対パスでcdするコマンドです.
例えば,u libってやると,リポジトリのトップ以下のlibに行ったり,u ../でリポジトリの1つ上に移動とかできます.
これは前に日記に書きました.
Gitのリポジトリのトップレベルにcdするコマンド - hitode909のダイアリー

f

export __session_from=$PWD
function f() {
    cd $__session_from
    if [ $# = 1 ]; then
        cd $1
    fi
}

これは,シェルを開いた場所から相対パスでcdするコマンドです.
.zshrcで読み込まれることを前提としていて,__session_fromという変数に,.zshrcを読み込んでるときのパスを保存しています.
screen内では,screenを開いた場所からになります.screen内で使うために作りました.

h

function h() {
    cd
    if [ $# = 1 ]; then
        cd $1
    fi
}

これは,ホームディレクトリからの相対パスでcdします.
h Documentsってやると,~/Documents/に移動できます.
cd ~/って打ちにくかったので作りました.cd ~/がhになるので,5文字くらい節約できます.

up

これは上に行くときに使います.前に日記に書きました.


これくらいあれば,行きたい場所に一瞬で移動できるようになります.
pushd, popdを使えば苦労しない,みたいなことを教えてくれる人がいますが,前にどこにいたのかと,今どこに行きたいかは,関係ないように思いますし,screenでwindowを開きまくるので,どこの履歴がどうなっているか覚えてないです.
また,履歴から探して,なかったときはパスを打たないといけないので,それなら,最初から,速い方法で移動できるほうがよい気がしています.
CDPATHも,この前教えていただいたのですが,あとでここに来そうだから,先に設定しておく,みたいなのが無理な気がします.