はじめに
シェルのエイリアス使っていますか?
めちゃくちゃ便利な機能で、開発生産性が爆上がりするエイリアス。
本稿では著者が使用しているエイリアスをいくつか紹介したいと思います
差分のあるファイルだけテスト、リントする
毎回全ファイルテストしたり、リントしてたりすると馬鹿にならない時間がかかるので、差分だけいい感じにやりたいですよね。
そんなときに差分があるファイル名だけ取得するコマンドがこれです。
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')" # モノレポなのでパスを合わせる
おわりに
本稿では著者が使用しているエイリアスを紹介いたしました。
特に効果の高いものに絞って紹介したのですが、ほかにも細かい奴をいっぱい定義してます。
特にgit
やcd
、docker
まわりですね。
記事を読んでくれたあなたも、最高のエイリアス見つけてみてください。