もた日記

くだらないことを真面目にやる

ZSH-LOVERSメモ(1) : 便利なグローバルエイリアス、サフィックスエイリアス

ZSH-LOVERS(1)というZshのTipsを紹介しているページがあるので見てみる。
紹介しているTipsの種類としては、

  1. Aliases
  2. Completion
  3. Unsorted/Misc examples
  4. (Recursive) Globbing - Examples
  5. Modifiers usage
  6. Redirection-Examples
  7. ZMV-Examples
  8. Module-Examples

がある。

Aliases


最初に紹介されているのは-sで指定するサフィックスエイリアスというものでバージョン4.2.0からサポートされている。

alias -s tex=vim
alias -s html=w3m
alias -s org=w3m

上記の例だと、foobar.texのような拡張子が.texのファイル名だけを入力してリターンを押すと、vim foobar.texを実行したことになる。

alias -s rb=ruby
alias -s py=python

のように設定すれば、foobar.rbfoobar.pyのように入力するだけでスクリプトを実行できるようになる。


次に紹介されているのは-gで指定するグローバルエイリアスというもので先頭以外の任意の位置でも展開される。

$ alias -g C='| wc -l'
$ grep alias ~/.zsh/* C
443

上記の例だと、グローバルエイリアスとしてC='| wc -l'を設定しているのでgrepコマンドの後にCを追加するだけで行数をカウントできるようになる。

他にも以下のようなサンプルが挙げられているが便利かどうかは人による。L="| less"G='| egrep'などは覚えやすいし、よく使うので便利そう。

alias -g ...='../..'
alias -g ....='../../..'
alias -g .....='../../../..'
alias -g CA="2>&1 | cat -A"
alias -g C='| wc -l'
alias -g D="DISPLAY=:0.0"
alias -g DN=/dev/null
alias -g ED="export DISPLAY=:0.0"
alias -g EG='|& egrep'
alias -g EH='|& head'
alias -g EL='|& less'
alias -g ELS='|& less -S'
alias -g ETL='|& tail -20'
alias -g ET='|& tail'
alias -g F=' | fmt -'
alias -g G='| egrep'
alias -g H='| head'
alias -g HL='|& head -20'
alias -g Sk="*~(*.bz2|*.gz|*.tgz|*.zip|*.z)"
alias -g LL="2>&1 | less"
alias -g L="| less"
alias -g LS='| less -S'
alias -g MM='| most'
alias -g M='| more'
alias -g NE="2> /dev/null"
alias -g NS='| sort -n'
alias -g NUL="> /dev/null 2>&1"
alias -g PIPE='|'
alias -g R=' > /c/aaa/tee.txt '
alias -g RNS='| sort -nr'
alias -g S='| sort'
alias -g TL='| tail -20'
alias -g T='| tail'
alias -g US='| sort -u'
alias -g VM=/var/log/messages
alias -g X0G='| xargs -0 egrep'
alias -g X0='| xargs -0'
alias -g XG='| xargs egrep'
alias -g X='| xargs'