Windows Git Bash の .bashrc の設定 (主にPython関連)

Tips
スポンサーリンク

はじめに

.bashrc のカスタマイズをすることにより、何もしないときと比べてかなり作業効率が上がっている気がするので、記事として残しておきます。適宜更新します。

.bashrc

いろいろな記事の内容を統合して、私は以下を記載するようにしています。

  • Poetry を使用して Python の依存関係をエクスポートするための alias
  • Pandoc の関数
  • Purelineの設定 Windows Terminal 用
  • Git Bash Path に Windows の環境変数を追加するための関数
  • tree コマンドを擬似的に使えるようにする関数
  • Python venv を作るときにプロンプト名を変更して作る関数
  • Python venv を柔軟にアクティベートするときの分岐
  alias "ll"="ls -la"
  # Poetry を使用して Python の依存関係をエクスポートするための alias
  alias "poetry_reqirements_export"="poetry export -f requirements.txt --output requirements.txt"

  # Pandocを使用してHTMLリソースを埋め込むための関数
  pandoc_embed_html () {
      pandoc -s --embed-resources -t html5 --template="to/your/template/path" $@
  }

  export LANG=ja_JP.UTF-8

  # Purelineの設定 Windows Terminal 用
  source ~/pureline/pureline ~/.pureline.conf

  # Git Bash Path に Windows の環境変数を追加するための関数
  function to_win_path() {
    path=${*}
    echo "$(readlink -f ${path} | sed -e 's@/@\\@g' -e 's@\\c\\@c:\\@g' | tr '\n' ' ')"
  }

  # tree コマンドを擬似的に使えるようにする関数
  function tree() {
    dst="$(to_win_path ${1:-$(pwd)})"
    cmd //c "chcp 437 & tree ${dst}" //a //f
  }

  # Python venv を作るときにプロンプト名を変更して作る関数
  function mkvenv() {
    # ref : https://zenn.dev/methane/articles/7175d97bab1cd0
    if [ -z "$1" ]; then # 第一引数が空なら、ディレクトリ名をプロンプト名にする
      python -m venv --upgrade-deps --prompt . .venv
      echo "python -m venv --upgrade-deps --prompt . .venv"
    else
      python -m venv --upgrade-deps --prompt $1 .venv
      echo "python -m venv --upgrade-deps --prompt $1 .venv"
    fi
  }

  # venv をアクティベートするときの分岐
  function activate() {
    # ./.venv がないときにアクティベートする virtual environment
    default_venv="to/your/venv/path"

    # 仮想環境がアクティベートされていたら終了
    if [ -n "$VIRTUAL_ENV" ]; then
        echo "Python venv already activated: $VIRTUAL_ENV"

    # まだアクティベートされていなかったら
    else

      # 第一引数にディレクトリ名が指定されていない場合、 .venv をアクティベートしにいく
      if [ -z "$1" ]; then
        if [ -d ".venv" ]; then # ディレクトリ直下に .venv (./.venv) があれば、それをアクティベート
          echo "Python venv found: `pwd`/.venv"
          echo "Python venv activated: `pwd`/.venv"
          source .venv/Scripts/activate
        else # なければデフォルトの .venv ($default_venv) をアクティベートしにいく
          echo "Python venv not found: `pwd`/.venv"
          echo "-> Python venv default setting activated: $default_venv"
          source $default_venv/Scripts/activate
        fi

      # 第一引数にディレクトリ名が指定されている場合、そこをアクティベートしにいく(複数の仮想環境を作っている場合を想定)
      else
        if [ -d "$1" ]; then
          echo "Python venv found: `pwd`/$1"
          echo "Python venv activated: `pwd`/$1"
          source $1/Scripts/activate
        else # なければアクティベートしない
          echo "Python venv not found: `pwd`/$1"
        fi
      fi
    fi
  }

おわりに

完全に未来の自分のための記録ですが、もし見てくださった方の役に立っていれば幸いです。

コメント

タイトルとURLをコピーしました