4c409b0de9
Without this change, whether a function can invoke 'subl' depends on the order in which modules are loaded. With this change, the order doesn't matter. zsh resolves aliases at parse time not run time, which means if you invoke an alias from a function, the alias must be defined before the function. See http://stackoverflow.com/a/25532276/893113 which refers to an explanation of this limitation. For code which may be used non-interactively, the recommend workaround is to use functions instead of aliases.
45 lines
1.5 KiB
Bash
45 lines
1.5 KiB
Bash
# Sublime Text 2 Aliases
|
|
|
|
if [[ $('uname') == 'Linux' ]]; then
|
|
local _sublime_linux_paths > /dev/null 2>&1
|
|
_sublime_linux_paths=(
|
|
"$HOME/bin/sublime_text"
|
|
"/opt/sublime_text/sublime_text"
|
|
"/opt/sublime_text_3/sublime_text"
|
|
"/usr/bin/sublime_text"
|
|
"/usr/local/bin/sublime_text"
|
|
"/usr/bin/subl"
|
|
)
|
|
for _sublime_path in $_sublime_linux_paths; do
|
|
if [[ -a $_sublime_path ]]; then
|
|
st_run() { $_sublime_path $@ >/dev/null 2>&1 &| }
|
|
st_run_sudo() {sudo $_sublime_path $@ >/dev/null 2>&1}
|
|
alias sst=st_run_sudo
|
|
alias st=st_run
|
|
break
|
|
fi
|
|
done
|
|
|
|
elif [[ "$OSTYPE" = darwin* ]]; then
|
|
local _sublime_darwin_paths > /dev/null 2>&1
|
|
_sublime_darwin_paths=(
|
|
"/usr/local/bin/subl"
|
|
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
|
"/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
|
"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
|
"$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
|
"$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
|
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
|
)
|
|
|
|
for _sublime_path in $_sublime_darwin_paths; do
|
|
if [[ -a $_sublime_path ]]; then
|
|
subl () { "$_sublime_path" $* }
|
|
alias st=subl
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
|
|
alias stt='st .'
|