Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I currently have a zsh alias setup like so.

alias e="subl"

This lets me e somedir to open up a directory in SublimeText. or e . to open up the current directory.

However, I would like to be able set . to be the default argument, or I can optionally pass in another directory.

So e should expand to subl .

And e somedir should expand to subl somedir

How exactly does one set this up? Is an alias even what I need here?

share|improve this question
up vote 12 down vote accepted

I would use a function:

function e() {
    if [ "$1" != "" ]
        subl $1
        subl .

adding it to .profile

share|improve this answer
+1 for using a function. You can shorten it to: e() { subl "${1:-.}"; } – glenn jackman Aug 26 '12 at 11:46
This works well but you lose the command completion. Although in this case the default of completing file names isn't bad. – Kevin Cox May 26 '15 at 12:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .