2016-09-27 4 views
3

In bash und zsh Früher habe ich schreiben:Wie schreibe ich einen Multi-Kommando-Alias ​​in XONSH?

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

Aber in xonsh dies gibt eine Fehlermeldung, dass der Befehl nicht gefunden wurde. Der tutorial's Abschnitt über Aliase sagt, dass ich so etwas tun sollte:

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

ich diese Arbeit im Fall von nur einem Befehl machen könnte, aber wenn ich die beiden Befehle meines bash Beispiel versuchen, beklagt es, dass ich gebe zu viele Eingaben an cd.

Hinweis: Ich weiß, dass ich den Alias ​​aus den anderen Shells importieren könnte, aber ich bin daran interessiert zu lernen, dies in XONSH zu tun.

Antwort

4

@lincolnfrias, xonsh unterstützt noch keine String-Aliase mit mehreren Befehlen. Dies ist ein Fehler/Mangel, der hoffentlich bald behoben wird. Bis dahin können Sie jedoch einen Funktionsalias für dieses Verhalten verwenden.

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

aliases['nb'] = _nb 

Oder wenn Sie wirklich tun dies in einer Linie wollte:

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

ehrfürchtig. Übrigens, danke für XONSH! – lincolnfrias

+0

Danke für die Benutzung! –