こんにちは。 もうすぐお花見の時期*1ですね。Misoca開発チームのtaiki-tです。
開発チームに聞いたところ、人によってエイリアスの設定に違いがあったので、比べてみました。 対象はZshとGitの設定です。
ちなみに、この間インターンの方の送別会と打ち上げ的なものがあって楽しかったです。
写真: 「commit -m '開発チームと愉快な仲間たちの巻'」
Zsh編
ls
たかがls
されどls
。
ls
のエイリアスにも様々なものがあります。
よく使うオプションと合わせてエイリアスにしているようです。
alias la='ls -a' # dot(.)で始まるディレクトリ、ファイルも表示 alias la='ls -al' # -a オプションと -l オプションの組み合わせ alias ll='ls -lav' alias ll='ls -l' # ファイルの詳細も表示 alias lla='ls -la' # -a オプションと -l オプションの組み合わせ alias ls='ls -F' # ディレクトリ名の末尾にはスラッシュ、シンボリックリンクの末尾には@というように種類ごとの表示をつけてくれる alias ls='ls -v -G' # Gはアウトプットに色を付けてくれる
同じコマンドでも人によってエイリアスが異なっていて面白いです。
また、上記にgrep
を組み合わせた
alias llag='ls -la | grep'
というようなエイリアスもありました。
ディレクトリ移動
alias cdprj='cd ~/Documents/prj' alias cdwork='cd ~/Documents/work' alias pd="popd"
よく使うディレクトリにエイリアスを張ると便利そうです。
popd
, pushd
は知らなかったので使ってみようと思います。
知らなかったコマンドを知れるのも、隣人に突撃してみる醍醐味です。
Railsに特化したエイリアス
MisocaはRailsで開発されています。 なのでRails開発でよく使うコマンドのエイリアスもあります。
bundle exec
alias b='bundle exec' alias be='bundle exec'
b
, be
等でエイリアスされています。僕はbe
を使っていましたが
、教えてもらったあとにb
に変えました。なんと入力する文字数を50%も削減できました。
console, serverの起動、テストの実行時など
alias c='bundle exec rails c' alias cs='bundle exec rails c -s' alias s='bundle exec rails s' alias sr='bundle exec spring rspec' alias rt='RAILS_ENV=test' alias rtsr='RAILS_ENV=test spring rspec' alias rd='RAILS_ENV=development bundle exec' alias npm-exec='PATH=$(npm bin):$PATH' alias disable-rspec-retry='export RSPEC_RETRY_RETRY_COUNT=1'
rspec retryの設定は失敗しそうなspecを実行したい場合に便利です。
環境変数を RSPEC_RETRY_RETRY_COUNT=1
と設定しておくことにより、一時的にリトライを抑制することができます。詳しくは下記の記事に載っています。
rspec_retry に Pull Request を送ってマージしてもらえた - Misoca開発ブログ
gitと組み合わせたコマンドのエイリアス
Misocaではrubocop、haml-lintを導入しています。 lintに引っかかるとCIを通らないので、gitとrubocopを組み合わせたコマンドのエイリアスも人気です。 ここらへんは、gitのサブコマンドにしてる人もいます。
alias gcr='git status --short | cut -c 3- | xargs rubocop -a && git commit' alias hamco='git status -s | cut -c 3- | grep .haml | xargs haml-lint' alias rspeco='git status -s | cut -c 3- | grep '\''_spec.rb$'\'' | xargs rspec' alias ruboco='git status -s | cut -c 3- | grep '\''\.rb$'\'' | xargs rubocop -a'
hamco
, rspeco
という名前に可愛さがあります。名付けた本人曰く「かわいいは正義」だそうです。なるほど。
ちなみにそのメンバーの名字は「saco」です。
hamco
は、git status -s
で変更したファイル一覧を取得し、ファイル名にhamlを含むのものを選んでhaml-lint
をかけるものです。
typo対策
alias eamcs='emacs' alias まけ='make' alias おまけ='omake' alias 。。='..' alias だて='date'
日本語入力のまま打ち込んでもそのまま実行できると便利ですね。
その他
その他、個々人の開発してきた経歴や環境が反映されるエイリアスがあって大変興味深かったです。
alias 644='chmod 644' alias 755='chmod 755' alias 777='chmod 777' alias sudo='sudo ' alias untar='tar xzvf' alias setlangja='export LANG=ja_JP.UTF-8' alias setlangc='export LANG=C'
sudo='sudo '
については下記リンク先の記事が詳しいです。
なんで末尾にスペース入れるだけで sudo で alias を有効にできるわけ? « blog.hekt.org
また、まったくエイリアスを設定していないというメンバーもいました。
Git編
鉄板エイリアス
co = checkout
基本コマンド
1文字でエイリアスする派と2文字でエイリアスする派がいます。
f = fetch p = push
commit
のエイリアスは割といろいろありました。
c = commit ci = commit ci = commit -a
ところで、この記事を書いていたところ 「coとciはsubversion由来なんですよね`」という知見を得られて「へぇー」となりました。
便利なエイリアス
delete-merged-branches = !git branch --merged | grep -v \\* | xargs -I % git branch -d % hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short log-all = log --graph --all --color --pretty='%x09%h %cn%x09%s %Cred%d%Creset'
hist
は下記のように履歴をグラフィカルに、綺麗にみれて便利です。
その他
gitconfigの設定は下記の記事を参考にしているという情報を得られました。 大変参考になりました。
.gitconfigに設定してるaliasなどのまとめ - ( ꒪⌓꒪) ゆるよろ日記
まとめ
ほんの出来心でエイリアスをとなりの人たちに聞いたのですが、結果的に知らないオプションや知らないコマンドを知れて良かったです。
今度は大きなしゃもじならぬ大きなターミナルをもって皆さんのところに突撃したいなと思います。
*1:tech.misoca.jp 今年はどんなドラマが生まれるのでしょうか。