Skip to content

Instantly share code, notes, and snippets.

@zserge
Created May 20, 2018 15:28
Show Gist options
  • Save zserge/1a315df99f5e7aed36d6ef0852eb18f1 to your computer and use it in GitHub Desktop.
Save zserge/1a315df99f5e7aed36d6ef0852eb18f1 to your computer and use it in GitHub Desktop.
autoload -U compinit colors vcs_info
colors
compinit
REPORTTIME=3
HISTFILE=~/.zhistory
HISTSIZE=5000
SAVEHIST=5000
setopt INC_APPEND_HISTORY
setopt EXTENDED_HISTORY
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt CORRECT_ALL
zstyle ':completion:*' completer _complete _correct _approximate
zstyle ':vcs_info:*' stagedstr '%F{green}●%f '
zstyle ':vcs_info:*' unstagedstr '%F{yellow}●%f '
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git*' formats "%F{blue}%b%f %u%c"
_setup_ps1() {
vcs_info
GLYPH="▲"
[ "x$KEYMAP" = "xvicmd" ] && GLYPH="▼"
PS1=" %(?.%F{blue}.%F{red})$GLYPH%f %(1j.%F{cyan}[%j]%f .)%F{blue}%~%f %(!.%F{red}#%f .)"
RPROMPT="$vcs_info_msg_0_"
}
_setup_ps1
# Vi mode
zle-keymap-select () {
_setup_ps1
zle reset-prompt
}
zle -N zle-keymap-select
zle-line-init () {
zle -K viins
}
zle -N zle-line-init
bindkey -v
# Common emacs bindings for vi mode
bindkey '\e[3~' delete-char
bindkey '^A' beginning-of-line
bindkey '^E' end-of-line
bindkey '^R' history-incremental-pattern-search-backward
# Tmux home/end
bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
# Urxvt
bindkey '\e[7~' beginning-of-line
bindkey '\e[8~' end-of-line
# user-friendly command output
export CLICOLOR=1
ls --color=auto &> /dev/null && alias ls='ls --color=auto'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment