これすごい便利だった
https://threkk.medium.com/how-to-use-bookmarks-in-bash-zsh-6b8074e40774
CDPATHを使うとこんな便利なことができるのね
ただ以下の方が指摘されているようにbashだと補完が効かないので, compgenで補完候補を作る方が良さそう
https://mobile.twitter.com/mattn_jp/status/1434205359573405696
自分の場合は、gotoっていうコマンドよりcdで通常通り使えた方が良いので
こんな感じの設定を追加しておいた
cdコマンドを上書きして、@で始まってたら cd -P
でsymlinkを辿るようにして、他は通常通り
(これなら補完候補も足さなくてOK)
export CDPATH=".:$HOME/.bookmarks"
function cd {
if [[ ${1} =~ ^@ ]];then
cd -P $1 || return 1
return
fi
builtin cd "$@" || return 1
}
あと、bookmarkへの追加もコマンドにしておく
bookmarkしたいディレクトリに移動してbookmark
コマンドでsymlink作るようにしておく
function bookmark {
local current_dir=$(pwd)
ln -s $current_dir ~/.bookmarks/@$(basename $current_dir)
}