====== Zshell ======
===== Example .zshrc =====
Here is an example ''.zshrc'' file. You can place this in your home directory.
##############
##############
### .zshrc ###
##############
##############
#########################
# Environment variables #
#########################
export EDITOR=vim
export VISUAL=vim
###########
# Aliases #
###########
alias zrc="$EDITOR $HOME/.zshrc"
alias ll='ls -lah'
alias grep='grep --color=auto'
#############
# Functions #
#############
function mp32ogg {
# Convert between any audio formats (not just mp3/ogg)
# Example: mp32ogg existing.mp3 new.ogg
ffmpeg -i $1 $2
}
#############################
# Load git stuff for prompt #
#############################
autoload -Uz vcs_info # Where do these come from? What else is there?
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
zstyle ':vcs_info:git:*' formats '%F{blue}(%b)%f'
zstyle ':vcs_info:*' enable git
setopt prompt_subst
########################
# Prompt customization #
########################
# All escape codes at http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html
# %F{color} sets the color
# %n is username
# %M is full hostname
# %f resets formatting
# %~ is current working directory
PROMPT='%F{green}%n@%F{cyan}%m:%~%f$vcs_info_msg_0_> '
# %W is the date
# %* is time
# %? is the return code of previous command
# %(q.n.y) is a ternary that checks the variable in question %q
# and outputs value n if it's false or 0, and value y is output
# when %q is non-zero.
# Replace q, n, and y with whatever values you want
RPROMPT='%W %* %(?.√.%?)'
##########################
# Keybind mode for shell #
##########################
# For emacs keybinding
#bindkey -e
# For vi keybinding
bindkey -v
#######################
# Command-line editor #
#######################
# Uses $VISUAL editor
autoload -z edit-command-line
zle -N edit-command-line
# If using emacs keybinds (CTRL-X + CTRL-E)
#bindkey "^X^E" edit-command-line
# If using vi keybinds (`v` in control mode)
bindkey -M vicmd v edit-command-line