helm/zsh/config
2013-08-04 05:14:37 -04:00

77 lines
1.7 KiB
Bash

# Disable autocorrect behavior, very annoying!
unsetopt correct_all
# HISTORY
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000
# Don't overwrite, append!
setopt APPEND_HISTORY
# Sharing history between shell instances
setopt SHARE_HISTORY
# If I type cd and then cd again, only save the last one
setopt HIST_IGNORE_DUPS
# Don't save lines that are just whitespace
setopt HIST_IGNORE_SPACE
setopt HIST_NO_STORE
# Reduce extra whitespace
setopt HIST_REDUCE_BLANKS
# Save time and how long a command ran
setopt EXTENDED_HISTORY
# Beep boop
setopt NO_BEEP
setopt EXTENDED_GLOB
setopt PROMPT_SUBST
setopt COMPLETE_IN_WORD
setopt NO_AUTO_MENU
setopt NO_ALWAYS_LAST_PROMPT
setopt PROMPTSUBST
setopt AUTO_PUSHD
setopt PUSHD_IGNORE_DUPS
export EDITOR=vim
export RUBYOPT=rubygems
COMPLETION_WAITING_DOTS="true"
##################################
# Make zsh prompt act like vi
zle -N edit-command-line
bindkey -v
bindkey '^f' edit-command-line
bindkey '^w' backward-kill-word
bindkey '^a' beginning-of-line
bindkey '^e' end-of-line
bindkey ${terminfo[kdch1]} delete-char
bindkey -M viins 'jj' vi-cmd-mode
# Switch between block and line cursor (Only in iterm)
if is_mac; then
function zle-keymap-select zle-line-init {
# change cursor shape in iTerm2
case $KEYMAP in
vicmd) print -n -- "\E]50;CursorShape=0\C-G";; # block cursor
viins|main) print -n -- "\E]50;CursorShape=1\C-G";; # line cursor
esac
zle reset-prompt
zle -R
}
function zle-line-finish {
print -n -- "\E]50;CursorShape=0\C-G" # block cursor
}
zle -N zle-line-init
zle -N zle-line-finish
zle -N zle-keymap-select
fi
# vim:set ft=zsh: