意外的zsh全局别名扩展

时间:2017-06-02 08:45:45

标签: zsh zsh-alias

编辑:该示例适用于纯zsh。我用prezto安装不起作用。看起来像是prezto中的一个错误。

我尝试在zsh中将var appsAndScopes=[ ['1',['A','B','C','D']], ['2 ',['E','F','G','H']], ['3',['I']], ['4',['J']] ]; function getAllElements(id){return document.getElementById(id);} function buildDropdowns(){ var applications=getAllElements('application').options; //Gets all applications names from appsAndScopes array. for(var applicationsIndex=0;applicationsIndex<appsAndScopes.length;applicationsIndex++){ applications[applications.length]=new Option(appsAndScopes[applicationsIndex][0],appsAndScopes[applicationsIndex][0]); } getAllElements('application').onchange=function(){ this.blur(); var currentApplication=this.value; if(!currentApplication){return;} var scopes=getAllElements('scope').options; scopes.length=1; for(var scopesIndex=0;scopesIndex<appsAndScopes.length;scopesIndex++){ if(appsAndScopes[scopesIndex][0]!==currentApplication){continue;} else{ var temp=appsAndScopes[scopesIndex][1]; for(var valueIndex=0;valueIndex<temp.length;valueIndex++){ scopes[scopes.length]=new Option(temp[valueIndex],temp[valueIndex]); } break; } } } } $(function() { buildDropdowns(); }); 别名为sponge。但结果非常令人惊讶。

没有全局别名:

SP

使用全局别名:

❯ echo xxx >! xxx
❯ cat xxx | sponge xxx
❯ cat xxx  # non-empty file
xxx

奇怪行为的原因是什么?我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:0)

你正在用一个参数替换应该是一个管道

cat xxx SP xxx

表示cat现在有3个参数

alias -g SP='sponge'

cat xxx | SP

应该给你想要的结果