0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は、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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?