diff --git a/.gitignore b/.gitignore index 551ba0b..f84db6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ +locals.zsh log/.zsh_history - +projects.zsh custom/*.zsh -!custom/example.zsh - +!custom/example.zsh \ No newline at end of file diff --git a/README.textile b/README.textile index 787a905..9972cf2 100644 --- a/README.textile +++ b/README.textile @@ -42,6 +42,10 @@ TODO: Update this.. ** Take a look at the "current themes":http://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with Oh My Zsh. * much much more.. +h2. Useful + +the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty for tips. + h3. Customization If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory. @@ -63,3 +67,7 @@ h3. Send us your theme! I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. +h3. Todo from imajes: + +* need to make the title bar support git folder +* \ No newline at end of file diff --git a/correction.zsh b/correction.zsh new file mode 100644 index 0000000..c9fecb0 --- /dev/null +++ b/correction.zsh @@ -0,0 +1,6 @@ +setopt correct_all + +alias man='nocorrect man' +alias mv='nocorrect mv' +alias mysql='nocorrect mysql' +alias mv='nocorrect mv' diff --git a/directories.zsh b/directories.zsh new file mode 100644 index 0000000..56d7a23 --- /dev/null +++ b/directories.zsh @@ -0,0 +1,40 @@ +# Changing/making/removing directory +setopt auto_name_dirs +setopt auto_pushd +setopt pushd_ignore_dups + +alias ..='cd ..' +alias cd..='cd ..' +alias cd...='cd ../..' +alias cd....='cd ../../..' +alias cd.....='cd ../../../..' +alias cd/='cd /' + +alias 1='cd -' +alias 2='cd +2' +alias 3='cd +3' +alias 4='cd +4' +alias 5='cd +5' +alias 6='cd +6' +alias 7='cd +7' +alias 8='cd +8' +alias 9='cd +9' + +cd () { + if [[ "x$*" == "x..." ]]; then + cd ../.. + elif [[ "x$*" == "x...." ]]; then + cd ../../.. + elif [[ "x$*" == "x....." ]]; then + cd ../../.. + elif [[ "x$*" == "x......" ]]; then + cd ../../../.. + else + builtin cd "$@" + fi +} + +alias md='mkdir -p' +alias rd=rmdir + +alias d='dirs -v' \ No newline at end of file diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 253c2ac..cd17781 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -10,6 +10,7 @@ alias .='pwd' alias ...='cd ../..' alias _='sudo' +alias ss='sudo su -' #alias g='grep -in' @@ -26,7 +27,10 @@ alias gba='git branch -a' alias history='fc -l 1' alias ls='ls -F' -alias ll='ls -al' +alias ll='ls -alr' +alias l='ls' +alias ll='ls -l' +alias sl=ls # often screw this up alias sgem='sudo gem' diff --git a/lib/completion.zsh b/lib/completion.zsh index dff71cf..795903d 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -1,6 +1,8 @@ +## fixme - the load process here seems a bit bizarre + setopt noautomenu -setopt COMPLETE_IN_WORD -setopt ALWAYS_TO_END +setopt complete_in_word +setopt always_to_end unsetopt flowcontrol @@ -18,8 +20,9 @@ zstyle ':completion:*' list-colors '' zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts ) unsetopt MENU_COMPLETE -setopt AUTO_MENU +#setopt AUTO_MENU +# should this be in keybindings? bindkey -M menuselect '^o' accept-and-infer-next-history zstyle ':completion:*:*:*:*:*' menu yes select @@ -28,3 +31,10 @@ zstyle ':completion:*:*:*:*:*' menu yes select zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts` + + +#complete on history +# zstyle ':completion:*:history-words' stop yes +# zstyle ':completion:*:history-words' remove-all-dups yes +# zstyle ':completion:*:history-words' list false +# zstyle ':completion:*:history-words' menu yes \ No newline at end of file diff --git a/lib/functions.zsh b/lib/functions.zsh index e3891f6..2fb096d 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,3 +1,4 @@ +## fixme, i duplicated this in xterms - oops function title { if [[ $TERM == "screen" ]]; then # Use these two for GNU Screen: diff --git a/lib/history.zsh b/lib/history.zsh index f7b63b7..527c327 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,15 +1,12 @@ -# History stuff. -setopt HIST_VERIFY -setopt INC_APPEND_HISTORY -setopt SHARE_HISTORY -setopt EXTENDED_HISTORY -setopt HIST_IGNORE_DUPS - ## Command history configuration -# -HISTFILE=$ZSH/log/.zsh_history +HISTFILE=$HOME/.zsh_history HISTSIZE=10000 SAVEHIST=10000 + setopt hist_ignore_dups # ignore duplication command history list setopt share_history # share command history data +setopt hist_verify +setopt inc_append_history +setopt extended_history +setopt hist_expire_dups_first diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 20caad1..87e47ba 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -1,14 +1,41 @@ # TODO: Explain what some of this does.. autoload -U compinit compinit + +bindkey -e bindkey '\ew' kill-region bindkey -s '\el' "ls\n" bindkey -s '\e.' "..\n" bindkey '^r' history-incremental-search-backward bindkey "^[[5~" up-line-or-history bindkey "^[[6~" down-line-or-history + +# make search up and down work, so partially type and hit up/down to find relevant stuff +bindkey '^[[A' up-line-or-search +bindkey '^[[B' down-line-or-search + bindkey "^[[H" beginning-of-line bindkey "^[[1~" beginning-of-line bindkey "^[[F" end-of-line bindkey "^[[4~" end-of-line -bindkey ' ' magic-space # also do history expansion on space \ No newline at end of file +bindkey ' ' magic-space # also do history expansion on space + + +# consider emacs keybindings: + +#bindkey -e ## emacs key bindings +# +#bindkey '^[[A' up-line-or-search +#bindkey '^[[B' down-line-or-search +#bindkey '^[^[[C' emacs-forward-word +#bindkey '^[^[[D' emacs-backward-word +# +#bindkey -s '^X^Z' '%-^M' +#bindkey '^[e' expand-cmd-path +#bindkey '^[^I' reverse-menu-complete +#bindkey '^X^N' accept-and-infer-next-history +#bindkey '^W' kill-region +#bindkey '^I' complete-word +## Fix weird sequence that rxvt produces +#bindkey -s '^[[Z' '\t' +# \ No newline at end of file diff --git a/lib/prompt.zsh b/lib/prompt.zsh index 31c33fe..3968968 100644 --- a/lib/prompt.zsh +++ b/lib/prompt.zsh @@ -1,19 +1,12 @@ export PAGER=less export LC_CTYPE=en_US.UTF-8 -bindkey -e +# speed stuff. -# Directory stuff. -setopt AUTO_NAME_DIRS - -# Speed stuff. - -#setopt NO_BEEP -setopt AUTO_CD -setopt MULTIOS -setopt CDABLEVARS - -bindkey -e +#setopt no_beep +setopt auto_cd +setopt multios +setopt cdablevarS if [[ x$WINDOW != x ]] then diff --git a/misc.zsh b/misc.zsh new file mode 100644 index 0000000..fab4be9 --- /dev/null +++ b/misc.zsh @@ -0,0 +1,9 @@ +## smart urls +autoload -U url-quote-magic +zle -N self-insert url-quote-magic + +## file rename magick +bindkey "^[m" copy-prev-shell-word + +## jobs +setopt long_list_jobs \ No newline at end of file diff --git a/themes/imajes.zsh-theme b/themes/imajes.zsh-theme new file mode 100644 index 0000000..88c35b6 --- /dev/null +++ b/themes/imajes.zsh-theme @@ -0,0 +1,5 @@ +# Found on the ZshWiki +# http://zshwiki.org/home/config/prompt +# + +PROMPT="%{$fg[red]%}%%%{$reset_color%} " \ No newline at end of file diff --git a/xterms.zsh b/xterms.zsh new file mode 100644 index 0000000..fef9787 --- /dev/null +++ b/xterms.zsh @@ -0,0 +1,21 @@ +case "$TERM" in + xterm*|rxvt*) + preexec () { + print -Pn "\e]0;%n@%m: $1\a" # xterm + } + precmd () { + print -Pn "\e]0;%n@%m: %~\a" # xterm + } + ;; + screen*) + preexec () { + local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} + echo -ne "\ek$CMD\e\\" + print -Pn "\e]0;%n@%m: $1\a" # xterm + } + precmd () { + echo -ne "\ekzsh\e\\" + print -Pn "\e]0;%n@%m: %~\a" # xterm + } + ;; +esac \ No newline at end of file