jQuery did this for JS, we're doing it for zsh. Simplest zsh configuration framework ever. Based on the "Explicit is better than implicit" paradigm (is it one?) from the Zen of Python, so (almost) nothing gets loaded when you source the file.
What's wrong with Oh My Zsh?
It's a big ass thing which loads a lot of files → pretty slow on HDDs (don't worry, I have an SSD now!). I've got tired of it and made my own framework. You're looking at it now :)
- Checks: functions
is_mac
,is_linux
,is_freebase
,has_brew
,has_apt
,has_yum
for your if statements (variables likeIS_MAC
are deprecated) - Some common defaults
- Plug&play support for Ubuntu's command-not-found, hub, RubyGems on Debian/Ubuntu, rvm, rbenv, jump
- Prompt setting aliases (for better readability) and "prompts" command which just sets both left and right prompts
- Neat stuff for your prompt: virtualenv info, smart prompt character (by Steve Losh. ± when you're in a Git repo, ☿ in a Mercurial repo, $ otherwise), rvm/rbenv ruby version
- Aliases, including LOLSPEAK ones (loaded separately)
- Completion for a lot of stuff
- Correction
- Current directory in title support: add
update_terminal_cwd
to your chpwd(). In OS X Lion Terminal.app, this'll be draggable!
last_modified
pretty self-explanatoryex
extract archivesmcd
mkdir + cd..
,....
cd-ing .. and ../..beep
pj
pretty-print JSONcj
curl and pretty-print JSONmd5
,sha1
,sha256
,sha512
,rot13
,rot47
,urldecode
,urlencode
of a stringgimme
install packages (Homebrew on Mac OS X, apt/yum on Linux)pinst
install python package from current dir and remove build, dist and egg-info folderss_http
serve current folder via https_smtp
launch an SMTP test server for development, on port 1025lst
ls tree-styleup
find a file in parent dirspath
pretty-print $PATH (with colors! yay!)
vol
get/set sound volumelocatemd
search with Spotlightql
open something in Quick Lookoo
open current dir in Findercdf
cd to the current path of the frontmost Finder windowpman
open man pages in Previewmailapp
creates a message in Mail.app from the first arg as a string or stdin if there are no args (eg. you can pipe stuff into it)sparrow
same for Sparrow.appevernote
same with a note in Evernote.appquit
,relaunch
OS X GUI appsselected
Finder items
source $yourdotfiles/zshuery/zshuery.sh
load_defaults
load_aliases
load_lol_aliases
load_completion $yourdotfiles/zshuery/completion
load_correction
prompts '%{$fg_bold[green]%}$(COLLAPSED_DIR)%{$reset_color%}$(virtualenv_info) %{$fg[yellow]%}$(prompt_char)%{$reset_color%} ' '%{$fg[red]%}$(ruby_version)%{$reset_color%}'
if is_mac; then
export EDITOR='mvim'
else
export EDITOR='vim'
fi
chpwd() {
update_terminal_cwd
}