zsh-Alias ​​mit Standardargument, aber auch überschreibbar

9

Ich habe derzeit ein solches zsh-Alias-Setup.

alias e="subl"

Dadurch kann ich e somedirein Verzeichnis in SublimeText öffnen. oder e .um das aktuelle Verzeichnis zu öffnen.

Ich möchte jedoch in der Lage .sein, das Standardargument festzulegen, oder ich kann optional ein anderes Verzeichnis übergeben.

Also esollte erweitert werdensubl .

Und e somedirsollte erweitern zusubl somedir

Wie genau stellt man das ein? Ist ein Alias ​​überhaupt das, was ich hier brauche?

Alex Wayne
quelle

Antworten:

20

Ich würde eine Funktion verwenden:

function e() {
    if [ "$1" != "" ]
    then
        subl $1
    else
        subl .
    fi
}

Hinzufügen zu .profile

Oxullo
quelle
16
+1 für die Verwendung einer Funktion. Sie können es verkürzen auf:e() { subl "${1:-.}"; }
Glenn Jackman
Dies funktioniert gut, aber Sie verlieren die Befehlsvervollständigung. Obwohl in diesem Fall die Standardeinstellung für das Vervollständigen von Dateinamen nicht schlecht ist.
Kevin Cox