在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中执行此操作.
@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)