zshのglobal aliasは、意外と使いでがある。ほかの人がどう使っているのか知らないが、僕は主に独自コマンドラインオプションを定義するために使っている。

 たとえば、「alias -g -- --mydb3='-h mydb3 -uadmin -p'」のように定義しておくと、「mysql --mydb3 」や「mysqldump --mydb3 --no-data blog」など、MySQLの接続情報の指定が楽になる。しかも、aliasなのでその前後でちゃんとzshのコマンドライン補完が利くのがうれしいところ。

 同様に、find(1)用に-cvs-excludeを定義してみた。

exclude_patterns=(
    RCS SCCS CVS CVS.adm RCSLOG 'cvslog.*' tags TAGS .make.state
    .nse_depinfo '*~' '#*' '.#*' ',*' '_$*' '*$'
    \*.{old,bak,BAK,orig,rej,del-\*,a,olb,o,obj,so,exe,Z,elc,ln}
    core .svn .bzr
)
 
alias -g -- -cvs-exclude='\( \! \( \( '"${(j/ -o /@)${(@q)exclude_patterns}/()/-name }"' \) -prune \) \)'
 
unset exclude_patterns

これで、「find ~/src/ruby -cvs-exclude -mtime -1」などと使えるわけだ。

 このほか、よく使うconfigureオプションをまとめたものを定義したりしても便利だと思う。もちろん、globalだけにあまりにありふれた名前は避けたいが、普通のalias同様にバックスラッシュで展開を避けることができるので、うっかりしても痛い目を見ない自信があるなら思い切った名前にしてしまってもいいと思う。

Tags :
Categories : Tech