2017-12-20 16 views
0

Bashでは、tmux lsが正常に動作します。しかし、Zshの中で、私はこのエラーを取得する:エイリアスを過剰置換するZsh

tmux: unknown option -- p
usage: list-sessions [-F format]

私はZshのはlsのための私のカスタム別名にコマンドのlsを交換しているためである疑いがある:

alias -g ls='ls -p --color' 

私はalias -g tmux\ ls='tmux list-sessions'を設定しようとしたが、ということうまくいかなかった。

Zshのエイリアスの拡張/置換動作を変更する方法はありますか?

答えて

2

lsはグローバルエイリアスとして定義されています。つまり、展開時にどこでもシェルはコマンドとして使用されるときだけでなく、lsを表示します。あなたがalias -gを使用するときにグローバルエイリアスを持っているのzshでは

alias ls='ls -p --color' 
+0

私は '-g'を使用していました。私はこのエイリアスをルートの '.zshrc'ファイルで定義すべきですか? – Nelson

+0

'sudo ls 'を意味しない限り、' -g'が '' rootとして使用できるようにする方法がわからない。しかし、サブコマンドの内容を置き換えるその動作は、まさにあなたが望んでいないと言っているものです。 –

+0

@CharlesDuffyはい、 'sudo ls'にエイリアスを使用したいと思いますが、' ls'を 'tmux ls'のようにどこでも*置き換えることは望ましくありません。しかし、これは私の問題を解決し、 'sudo'を使うときにエイリアスを手動で打ち込むことができます。 – Nelson

0

:ちょうど-gオプションをドロップします。グローバルエイリアスは、コマンドの先頭だけでなく、どこでも動作するエイリアスです。 あなたがここで欲しいものではありません!

しかし、グローバルエイリアスは非常に強力で便利です。例えば:

alias -g L="| less" # to page the output with less 
alias -g WL="| wc -l" # to have stats from wc 
alias -g CP="| xclip -f -r" # to copy output into clipboard 
alias -g NU="&> /dev/null" # to remove error and standard outputs 

それらを使用する:それはルートとして使用することができるよう

ps aux L # expanded into: ps aux | less 
ls -1 WL # expanded into: ls -1 | wc -l 
date CP # expanded into: date | xclip -f -r 
ls /foo2 /usr NU || echo okay # expanded into: ls /foo2 /usr &> /dev/null || ... 
関連する問題