膝肘歪美 技術録ブログ

ぼちぼちオナシャス

【シェル】開発生産性爆上がりのエイリアス設定【zsh】

はじめに

シェルのエイリアス使っていますか?
めちゃくちゃ便利な機能で、開発生産性が爆上がりするエイリアス
本稿では著者が使用しているエイリアスをいくつか紹介したいと思います

差分のあるファイルだけテスト、リントする

毎回全ファイルテストしたり、リントしてたりすると馬鹿にならない時間がかかるので、差分だけいい感じにやりたいですよね。
そんなときに差分があるファイル名だけ取得するコマンドがこれです。

git status -s | awk '{ print $2 }'

rubocop にかけたいときはこうです。

bundle exec rubocop $(git status -s '*.rb' | awk '{ print $2}')

このコマンド自体は最高なんですが、めちゃくちゃ長いんですよね...
そんなときにエイリアスの出番です

~/.zshrc

alias rc="bundle exec rubocop $(git status -s '*.rb' | awk '{ print $2}')"

これを定義して読み込めば、bundle exec rubocop $(git status -s '*.rb' | awk '{ print $2}')の代わりにrcを打つだけでよくなります。
便利すぎる。

コンテナ内で実行する

Docker Compose で開発していると、コンテナ内でコマンド実行する必要があります。
docker compose exec hoge bash してコンテナ内のシェルに入って作業してもいいのですが、ホストのシェルを整えていると、相対的に作業しにくく感じてしまいます。

そういう時、エイリアスの出番ですね。

~/.zshrc

alias dce="docker compose exec"

docker compose exec の代わりにdceと打つだけでよくなります。最高。

組み合わせる

上記を組み合わせる。
もう元には戻れなくなります。

~/.zshrc

alias crc="docker compose exec web bundle exec rubocop $(git status -s '*.rb' | awk '{ print $2}')"

至高のエイリアス爆誕しました。

最終的にはこれの仲間を定義しまくることになります。

~/.zshrc

alias crc="docker compose exec web bundle exec rubocop $(git status -s '*.rb' | awk '{ print $2}')"
alias crca="docker compose exec web bundle exec rubocop -A $(git status -s '*.rb' | awk '{ print $2}')"
alias crs="docker compose exec web bundle exec rspec $(git status -s '*._spec.rb' | awk '{ print $2}')"
alias ccheck="docker compose exec front npx biome check $(git status -s '*.ts' '*.tsx' | awk '{print $2}' | sed 's/front\///g')" # モノレポなのでパスを合わせる
alias cwrite="docker compose exec front npx biome check --write $(git status -s '*.ts' '*.tsx' | awk '{print $2}' | sed 's/front\///g')" # モノレポなのでパスを合わせる

おわりに

本稿では著者が使用しているエイリアスを紹介いたしました。
特に効果の高いものに絞って紹介したのですが、ほかにも細かい奴をいっぱい定義してます。
特にgitcddockerまわりですね。

記事を読んでくれたあなたも、最高のエイリアス見つけてみてください。