はじめに
.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
}
おわりに
完全に未来の自分のための記録ですが、もし見てくださった方の役に立っていれば幸いです。
コメント