この記事は、fishファンクションシリーズの2記事目です。わたしが勝手になっていることなのでお気になさらず。他のファンクションも見てみてください。
こんにちは。KITsのプログラマーの苔コッコーです。
今回は、もっとも便利だと感じているcdhコマンドを紹介していこうと思います。
コードは一番下に貼っておきます。fishです。
紹介
このコマンドは、現在のセッションでそこまでに移動したディレクトリからfzfで選択し、そこへ移動できるコマンドです。複数のディレクトリをまたいで開発する際にとても便利です。
環境数が増えてくると結構便利です。
cdコマンドの実行時に環境変数に記録し、cdhの実行時にそれを読み出すようにしています。
コード
function cd
set OLDPWD_TEMP $PWD
if test (count $argv) -eq 0
# 引数なしで呼ばれた場合、ホームディレクトリに移動
builtin cd ~
else if test "$argv[1]" = '-'
# 'cd -' の処理 ($OLDPWD に移動)
if test -n "$OLDPWD"
builtin cd $OLDPWD
end
else
# その他の引数がある場合は通常のcdを実行
builtin cd $argv
end
set OLDPWD $OLDPWD_TEMP
# ディレクトリ移動後、現在のディレクトリを履歴スタックに保存
set -g DIR_STACK $PWD $DIR_STACK
end
function cdh
# fzfでディレクトリ履歴から選択
set dir (printf "%s\n" $DIR_STACK | fzf)
if test -n "$dir"
builtin cd $dir
end
end