199 lines
5.3 KiB
Bash
199 lines
5.3 KiB
Bash
# Env vars
|
||
|
||
emulate sh -c 'source /etc/profile'
|
||
|
||
if which vimpager >& /dev/null; then
|
||
export PAGER="vimpager -u $HOME/.vim/vimrc"
|
||
else
|
||
export PAGER="less"
|
||
fi
|
||
export EDITOR="vim"
|
||
export LESS="-I -M -R --shift 5"
|
||
export LANG=en_US.UTF-8
|
||
|
||
# FIXME: missing functions: add-prefix, remove-prefix, update-prefixes.
|
||
# Prefixes management is a pain right now.
|
||
export PATH="$HOME/.local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH"
|
||
export LD_LIBRARY_PATH="/usr/local/lib:$HOME/.local/lib"
|
||
|
||
# Fuck tmux.
|
||
if [[ "$TERM" == screen ]]; then
|
||
export TERM=screen-256color
|
||
fi
|
||
|
||
# Used for powerline-like-things. Set to false if you don’t want that.
|
||
: ${POWERLINE:=false}
|
||
|
||
# Escape key timeout. Increase if you have to work through lag.
|
||
export KEYTIMEOUT=1
|
||
|
||
# History settings
|
||
HISTFILE=~/.histfile
|
||
HISTSIZE=5000
|
||
SAVEHIST=5000
|
||
setopt append_history hist_ignore_all_dups hist_reduce_blanks
|
||
|
||
# Auto-cd
|
||
setopt autocd
|
||
|
||
# Disable beeps
|
||
unsetopt beep
|
||
|
||
# Disable live job notifications
|
||
unsetopt notify
|
||
|
||
# Extended globbing
|
||
setopt extendedglob
|
||
|
||
# No = expansion
|
||
unsetopt equals
|
||
|
||
# Correction
|
||
setopt correct
|
||
|
||
# Remove RPS1 after <enter>
|
||
setopt transient_rprompt
|
||
|
||
# Color vars
|
||
autoload -U colors
|
||
colors
|
||
LS_COLORS=''
|
||
LS_COLORS="$LS_COLORS"'*.exe=32;41:*.jar=32:' # Executables
|
||
LS_COLORS="$LS_COLORS"'*.nes=32:*.smc=32:*.?64=32:*.gcm=32:*.gb=32:*.gbc=32:*.gba=32:*.nds=32:' # Emulators
|
||
LS_COLORS="$LS_COLORS"'*.tex=33:*.ly=33:*.xml=33:*.xsl=33:*.js=33:*.css=33:*.php=33:*.py=33:*Makefile=33:*.asm=33:*.c=33:*.h=33:*.cpp=33:*.vala=33:*.sh=33:*.zsh=33:*.vim=33:*.scm=33:*.patch=33:*.gv=33:' # Sources
|
||
LS_COLORS="$LS_COLORS"'*.odt=1;33:*.ods=1;33:*.odp=1;33:*.pdf=1;33:*.xhtml=1;33:*.html=1;33:*.htm=1;33:*.doc=1;33;41:*.xls=1;33;41:*.ppt=1;33;41:' # Text
|
||
LS_COLORS="$LS_COLORS"'*.tar=1;31:*.xz=1;31:*.bz2=1;31:*.gz=1;31:*.deb=1;31:*.rpm=1;31:*.xpi=1;31:*.tgz=1;31:*.arj=1;31:*.taz=1;31:*.lzh=1;31:*.lzma=1;31:*.zip=1;31;43:*.z=1;31:*.Z=1;31:*.dz=1;31:*.bz=1;31:*.tbz2=1;31:*.tz=1;31:*.rar=1;31;43:*.ace=1;31:*.zoo=1;31:*.cpio=1;31:*.7z=1;31:*.rz=1;31:*.torrent=1;31:' # Archives
|
||
LS_COLORS="$LS_COLORS"'*.svg=35:*.svgz=35:*.png=35:*.xcf=35:*.jpg=35:*.jpeg=35:*.gif=35:*.bmp=35:*.pbm=35:*.pgm=35:*.ppm=35:*.tga=35:*.xbm=35:*.xpm=35:*.tif=35:*.tiff=35:*.pcx=35:' # Images
|
||
LS_COLORS="$LS_COLORS"'*.ogv=1;35:*.mng=1;35:*.avi=1;35;41:*.mpg=1;35;41:*.mpeg=1;35;41:*.mkv=1;35;41:*.vob=1;35;41:*.ogm=1;35;41:*.mp4=1;35;41:*.mov=1;35;41:*.wmv=1;35;41:*.asf=1;35;41:*.rm=1;35;41:*.rmvb=1;35;41:*.flv=1;35;41:*.gl=1;35:*.yuv=1;35:' # Video
|
||
LS_COLORS="$LS_COLORS"'*.flac=36:*.oga=36:*.ogg=36:*.mid=36:*.midi=36:*.wav=36:*.aac=36;41:*.au=36:*.mka=36:*.mp3=36;41:*.wma=36;41:*.mpc=36;41:*.ape=36;41:*.ra=36;41:' # Musics/Sound files
|
||
LS_COLORS="$LS_COLORS"$(echo $LS_COLORS | tr '[a-z]' '[A-Z]')
|
||
LS_COLORS="$LS_COLORS"'no=0:fi=0:di=1;34:ln=1;36:pi=40;33:so=1;35:do=1;35:bd=40;33;1:cd=40;33;1:or=40;31;1:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=1;32:' # Various
|
||
export LS_COLORS
|
||
|
||
# Watch for login/logout
|
||
watch=all
|
||
|
||
# Smart completion
|
||
zstyle :compinstall filename "$HOME/.zshrc"
|
||
autoload -Uz compinit
|
||
compinit
|
||
|
||
# vi keybindings
|
||
bindkey -v
|
||
|
||
bindkey -a 'gg' beginning-of-buffer-or-history
|
||
bindkey -a 'g~' vi-oper-swap-case
|
||
bindkey -a G end-of-buffer-or-history
|
||
|
||
bindkey '^?' backward-delete-char
|
||
bindkey '^H' backward-delete-char
|
||
|
||
# Ctrl + (Left|Right)
|
||
bindkey "^[[1;5C" forward-word
|
||
bindkey "^[[1;5D" backward-word
|
||
|
||
# Alt + .
|
||
bindkey "^[." insert-last-word
|
||
|
||
# URxvt keys
|
||
bindkey '[2~' overwrite-mode
|
||
bindkey '[3~' delete-char
|
||
bindkey '[5~' history-search-backward
|
||
bindkey '[6~' history-search-forward
|
||
bindkey '[7~' beginning-of-line
|
||
bindkey '[8~' end-of-line
|
||
bindkey '^r' history-incremental-search-backward
|
||
# Gnome Terminal
|
||
bindkey 'OH' beginning-of-line
|
||
bindkey 'OF' end-of-line
|
||
# Screen
|
||
bindkey '[1~' beginning-of-line
|
||
bindkey '[4~' end-of-line
|
||
# Xterm
|
||
bindkey '[H' beginning-of-line
|
||
bindkey '[F' end-of-line
|
||
|
||
# killall
|
||
zstyle ':completion:*:killall:*' command 'ps -u $USER -o cmd'
|
||
zstyle ':completion:*:sudo killall:*' command 'ps -o cmd'
|
||
|
||
# Man
|
||
bindkey '^X^H' run-help
|
||
|
||
# Edit cmdline
|
||
autoload edit-command-line
|
||
zle -N edit-command-line
|
||
bindkey '^xe' edit-command-line
|
||
|
||
# Complete help
|
||
bindkey '^xc' _complete_help
|
||
|
||
function backward-kill-arg {
|
||
local WORDCHARS="${WORDCHARS:s#[[:space:]]#}"
|
||
zle backward-kill-word
|
||
}
|
||
zle -N backward-kill-arg
|
||
|
||
# Alt-backspace
|
||
bindkey '^[^?' backward-kill-arg
|
||
|
||
# () [] {} ...
|
||
# This one did me more harm than good.
|
||
#bindkey -s '((' '()\ei'
|
||
#bindkey -s '( (' '( )\ehi'
|
||
#bindkey -s '(((' '(\ea( ))\ehhi'
|
||
#bindkey -s '{{' '{}\ei'
|
||
#bindkey -s '{ {' '{ }\ehi'
|
||
#bindkey -s '{{{' '{\ea{ }}\ehhi'
|
||
#bindkey -s '[[' '[]\ei'
|
||
#bindkey -s '[ [' '[ ]\ehi'
|
||
#bindkey -s '[[[' '[\ea[ ]]\ehhi'
|
||
#bindkey -s "''" "'\ea'\ei"
|
||
#bindkey -s '""' '"\ea"\ei'
|
||
|
||
# Colored completion
|
||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||
|
||
# ... -> ../..
|
||
rationalise-dot() {
|
||
if [[ $LBUFFER = *.. ]]; then
|
||
LBUFFER+=/..
|
||
else
|
||
LBUFFER+=.
|
||
fi
|
||
}
|
||
|
||
zle -N rationalise-dot
|
||
bindkey . rationalise-dot
|
||
|
||
# Quick arithmetics
|
||
if alias -m "$" | grep -q ""; then
|
||
unalias "$"
|
||
fi
|
||
$ () {
|
||
typeset -a input
|
||
input=(${@//×/*})
|
||
input=(${input//x/*})
|
||
input=(${input//·/*})
|
||
input=(${input//÷//})
|
||
|
||
echo $((${input[@]}))
|
||
}
|
||
alias "$"="noglob $"
|
||
|
||
# Pattern-matching mv
|
||
autoload zmv
|
||
|
||
# zsh-pattern mv
|
||
alias zmv="noglob zmv -W"
|
||
|
||
for dir in /etc/zsh ~/.zsh; do
|
||
if [[ -d $dir ]]; then
|
||
for file in $dir/*.zsh; do
|
||
source $file
|
||
done
|
||
fi
|
||
done
|
||
|
||
# vim: set ts=4 sw=4 cc=80 :
|