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

lin*_*ias 6 shell xonsh

在bash和zsh我曾经写过:

alias nb='cd /home/lincoln/Dropbox/nupis/ && jupyter notebook'
Run Code Online (Sandbox Code Playgroud)

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

aliases['g'] = 'git status -sb' 
Run Code Online (Sandbox Code Playgroud)

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

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

Ant*_*atz 8

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

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

aliases['nb'] = _nb
Run Code Online (Sandbox Code Playgroud)

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

aliases['nb'] = lambda a, s: ![cd /home/lincoln/Dropbox/nupis/] and ![jupyter notebook]
Run Code Online (Sandbox Code Playgroud)