良く移動するディレクトリをマークしてジャンプするためのtips。.bashrc
に追加して使用
autojumpやzみたいな感じのやつですかね。使った事無いですが。
.bashrc
export MARKPATH=$HOME/.marks
function jump {
cd -P $MARKPATH/$1 2>/dev/null || echo "No such mark: $1"
}
function mark {
mkdir -p $MARKPATH; ln -s $(pwd) $MARKPATH/$1
}
function unmark {
rm -i $MARKPATH/$1
}
function marks {
ls -l $MARKPATH
}
マーキングしたいディレクトリで
mark
名前付けたい時は
mark huge
マークした一覧表示は
marks
マークしたディレクトリに移動は
jump huge
マークの削除は
unmark huge
元ソースはこちらとかとか
Quickly navigate your filesystem from the command-line
https://news.ycombinator.com/item?id=6229001
https://github.com/robbyrussell/oh-my-zsh/pull/2045
自分が使いやすく書き直したりしてるのでそれぞれの好みで変更してくだされ。
bash_completion
を使っている人は$HOME/.bash_completion
に以下を記述すればコマンドの補完が可能
.bash_completion
function _completemarks() {
local keys word
word=${COMP_WORDS[COMP_CWORD]}
keys=$(echo $MARKPATH/* | for f in $(xargs) ; do basename $f ; done | xargs)
if [ ${#keys[*]} -gt 0 ]; then
COMPREPLY=($(compgen -W "${keys[@]}" $word))
fi
return 0
}
complete -F _completemarks jump
complete -F _completemarks unmark