如何在xonsh中编写多命令别名?

时间:2016-09-27 12:04:40

标签: shell xonsh

在bash和zsh我曾写过:

alias nb='cd /home/lincoln/Dropbox/nupis/ && jupyter notebook'

但是在xonsh中,这会返回一个错误,指出找不到该命令。 关于别名的tutorial's部分说我应该做类似的事情:

aliases['g'] = 'git status -sb' 

我只能在一个命令的情况下完成这项工作,但是当我尝试我的bash示例的两个命令时,它会抱怨我向cd提供了太多输入。

注意:我知道我可以从其他shell导入别名,但我有兴趣学习在xonsh中执行此操作。

2 个答案:

答案 0 :(得分:7)

@lincolnfrias,xonsh还不支持具有多个命令的字符串别名。这是一个有希望很快得到解决的错误/缺陷。但是,在此之前,您可以为此行为使用函数别名。

def _nb(args, stdin=None):
    cd /home/lincoln/Dropbox/nupis/ && jupyter notebook

aliases['nb'] = _nb

或者如果你真的想在一行中这样做:

aliases['nb'] = lambda a, s: ![cd /home/lincoln/Dropbox/nupis/] and ![jupyter notebook]

答案 1 :(得分:0)

使用;分隔命令可以正常工作,如下所示:

aliases['gp'] = 'git add -A :/; git commit -m asdf;git push;'