zshのglobal aliasは、意外と使いでがある。ほかの人がどう使っているのか知らないが、僕は主に独自コマンドラインオプションを定義するために使っている。
たとえば、「alias -g -- --mydb3='-h mydb3 -uadmin -p'
」のように定義しておくと、「mysql --mydb3 」や「mysqldump --mydb3 --no-data blog
」など、MySQLの接続情報の指定が楽になる。しかも、aliasなのでその前後でちゃんとzshのコマンドライン補完が利くのがうれしいところ。
同様に、find(1)
用に-cvs-exclude
を定義してみた。
1 2 3 4 5 6 7 8 9 10 |
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同様にバックスラッシュで展開を避けることができるので、うっかりしても痛い目を見ない自信があるなら思い切った名前にしてしまってもいいと思う。
Your article helped me a lot, is there any more related content? Thanks!
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.