mirror of
https://github.com/zsh-users/zsh
synced 2024-09-06 08:25:56 +00:00
164 lines
5.2 KiB
Bash
164 lines
5.2 KiB
Bash
#
|
|
# Example .zshrc file for zsh 4.0
|
|
#
|
|
# .zshrc is sourced in interactive shells. It
|
|
# should contain commands to set up aliases, functions,
|
|
# options, key bindings, etc.
|
|
#
|
|
|
|
# THIS FILE IS NOT INTENDED TO BE USED AS /etc/zshrc, NOR WITHOUT EDITING
|
|
return 0 # Remove this line after editing this file as appropriate
|
|
|
|
# Search path for the cd command
|
|
cdpath=(.. ~ ~/src ~/zsh)
|
|
|
|
# Use hard limits, except for a smaller stack and no core dumps
|
|
unlimit
|
|
limit stack 8192
|
|
limit core 0
|
|
limit -s
|
|
|
|
umask 022
|
|
|
|
# Set up aliases
|
|
alias mv='nocorrect mv' # no spelling correction on mv
|
|
alias cp='nocorrect cp' # no spelling correction on cp
|
|
alias mkdir='nocorrect mkdir' # no spelling correction on mkdir
|
|
alias j=jobs
|
|
alias pu=pushd
|
|
alias po=popd
|
|
alias d='dirs -v'
|
|
alias h=history
|
|
alias grep=egrep
|
|
alias ll='ls -l'
|
|
alias la='ls -a'
|
|
|
|
# List only directories and symbolic
|
|
# links that point to directories
|
|
alias lsd='ls -ld *(-/DN)'
|
|
|
|
# List only file beginning with "."
|
|
alias lsa='ls -ld .*'
|
|
|
|
# Shell functions
|
|
setenv() { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" } # csh compatibility
|
|
freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done }
|
|
|
|
# Where to look for autoloaded function definitions
|
|
fpath=($fpath ~/.zfunc)
|
|
|
|
# Autoload all shell functions from all directories in $fpath (following
|
|
# symlinks) that have the executable bit on (the executable bit is not
|
|
# necessary, but gives you an easy way to stop the autoloading of a
|
|
# particular shell function). $fpath should not be empty for this to work.
|
|
for func in $^fpath/*(N-.x:t); autoload $func
|
|
|
|
# automatically remove duplicates from these arrays
|
|
typeset -U path cdpath fpath manpath
|
|
|
|
# Global aliases -- These do not have to be
|
|
# at the beginning of the command line.
|
|
alias -g M='|more'
|
|
alias -g H='|head'
|
|
alias -g T='|tail'
|
|
|
|
manpath=($X11HOME/man /usr/man /usr/lang/man /usr/local/man)
|
|
export MANPATH
|
|
|
|
# Hosts to use for completion (see later zstyle)
|
|
hosts=(`hostname` ftp.math.gatech.edu prep.ai.mit.edu wuarchive.wustl.edu)
|
|
|
|
# Set prompts
|
|
PROMPT='%m%# ' # default prompt
|
|
RPROMPT=' %~' # prompt for right side of screen
|
|
|
|
# Some environment variables
|
|
export MAIL=/var/spool/mail/$USERNAME
|
|
export LESS=-cex3M
|
|
export HELPDIR=/usr/share/zsh/$ZSH_VERSION/help # directory for run-help function to find docs
|
|
unalias run-help && autoload -Uz run-help
|
|
|
|
MAILCHECK=300
|
|
HISTSIZE=200
|
|
DIRSTACKSIZE=20
|
|
|
|
# Watch for my friends
|
|
#watch=( $(<~/.friends) ) # watch for people in .friends file
|
|
watch=(notme) # watch for everybody but me
|
|
LOGCHECK=300 # check every 5 min for login/logout activity
|
|
WATCHFMT='%n %a %l from %m at %t.'
|
|
|
|
# Set/unset shell options
|
|
setopt notify globdots correct pushdtohome cdablevars autolist
|
|
setopt correctall autocd recexact longlistjobs
|
|
setopt autoresume histignoredups pushdsilent noclobber
|
|
setopt autopushd pushdminus extendedglob rcquotes mailwarning
|
|
unsetopt bgnice autoparamslash
|
|
|
|
# Autoload zsh modules when they are referenced
|
|
zmodload -a zsh/zpty zpty
|
|
zmodload -a zsh/zprof zprof
|
|
zmodload -ap zsh/mapfile mapfile
|
|
# stat(1) is now commonly an external command, so just load zstat
|
|
zmodload -aF zsh/stat b:zstat
|
|
|
|
# Some nice key bindings
|
|
#bindkey '^X^Z' universal-argument ' ' magic-space
|
|
#bindkey '^X^A' vi-find-prev-char-skip
|
|
#bindkey '^Xa' _expand_alias
|
|
#bindkey '^Z' accept-and-hold
|
|
#bindkey -s '\M-/' \\\\
|
|
#bindkey -s '\M-=' \|
|
|
|
|
# bindkey -v # vi key bindings
|
|
|
|
bindkey -e # emacs key bindings
|
|
bindkey ' ' magic-space # also do history expansion on space
|
|
bindkey '^I' complete-word # complete on tab, leave expansion to _expand
|
|
|
|
# Setup new style completion system. To see examples of the old style (compctl
|
|
# based) programmable completion, check Misc/compctl-examples in the zsh
|
|
# distribution.
|
|
autoload -Uz compinit
|
|
compinit
|
|
|
|
# Completion Styles
|
|
|
|
# list of completers to use
|
|
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate
|
|
|
|
# allow one error for every three characters typed in approximate completer
|
|
zstyle -e ':completion:*:approximate:*' max-errors \
|
|
'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
|
|
|
|
# insert all expansions for expand completer
|
|
zstyle ':completion:*:expand:*' tag-order all-expansions
|
|
|
|
# formatting and messages
|
|
zstyle ':completion:*' verbose yes
|
|
zstyle ':completion:*:descriptions' format '%B%d%b'
|
|
zstyle ':completion:*:messages' format '%d'
|
|
zstyle ':completion:*:warnings' format 'No matches for: %d'
|
|
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
|
|
zstyle ':completion:*' group-name ''
|
|
|
|
# match uppercase from lowercase
|
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
|
|
# offer indexes before parameters in subscripts
|
|
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
|
|
|
|
# command for process lists, the local web server details and host completion
|
|
#zstyle ':completion:*:processes' command 'ps -o pid,s,nice,stime,args'
|
|
#zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html'
|
|
zstyle '*' hosts $hosts
|
|
|
|
# Filename suffixes to ignore during completion (except after rm command)
|
|
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \
|
|
'*?.old' '*?.pro'
|
|
# the same for old style completion
|
|
#fignore=(.o .c~ .old .pro)
|
|
|
|
# ignore completion functions (until the _ignored completer)
|
|
zstyle ':completion:*:functions' ignored-patterns '_*'
|