You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			260 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			260 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Bash
		
	
# Don't show input while loading
 | 
						|
stty -echo
 | 
						|
 | 
						|
# some better colors for ls
 | 
						|
eval "`dircolors ~/.dircolors`"
 | 
						|
 | 
						|
# Keybindings {{{
 | 
						|
bindkey -e
 | 
						|
bindkey '\e[1~' beginning-of-line
 | 
						|
bindkey '\e[4~' end-of-line
 | 
						|
bindkey '\e[3~' delete-char
 | 
						|
bindkey '\e[2~' overwrite-mode
 | 
						|
bindkey "^[[7~" beginning-of-line # Pos1
 | 
						|
bindkey "^[[8~" end-of-line # End
 | 
						|
bindkey "^[[A" history-beginning-search-backward
 | 
						|
bindkey "^[[B" history-beginning-search-forward
 | 
						|
 | 
						|
# add edit command line feature ("alt-e")
 | 
						|
autoload edit-command-line
 | 
						|
zle -N edit-command-line
 | 
						|
bindkey '\ee' edit-command-line
 | 
						|
 | 
						|
# }}}
 | 
						|
# Variables {{{
 | 
						|
export EDITOR=vim
 | 
						|
export VISUAL=$EDITOR
 | 
						|
export PAGER=less
 | 
						|
 | 
						|
export LESSCHARSET="UTF-8"
 | 
						|
export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-'
 | 
						|
export LESS='-i -n -w -M -R -P%t?f%f \
 | 
						|
:stdin .?pb%pb\%:?lbLine %lb:?bbByte %bb:-...'
 | 
						|
 | 
						|
# Less Colors for Man Pages
 | 
						|
export LESS_TERMCAP_mb=$'\E[01;31m'       # begin blinking
 | 
						|
export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
 | 
						|
export LESS_TERMCAP_me=$'\E[0m'           # end mode
 | 
						|
export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
 | 
						|
export LESS_TERMCAP_so=$'\E[38;5;11m'    # begin standout-mode - info box
 | 
						|
export LESS_TERMCAP_ue=$'\E[0m'           # end underline
 | 
						|
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
 | 
						|
# }}}
 | 
						|
# Prompt {{{
 | 
						|
if [[ $UID != 0 ]]; then
 | 
						|
  local username_color="%F{blue}"
 | 
						|
else
 | 
						|
  local username_color="%F{red}"
 | 
						|
fi
 | 
						|
local host_color="%F{green}"
 | 
						|
local path_color="%F{blue}"
 | 
						|
PROMPT="${username_color}$USERNAME%f@${host_color}%B%M%b%f ${path_color}%B%~%b%f > "
 | 
						|
#}
 | 
						|
 | 
						|
## Spelling prompt
 | 
						|
SPROMPT='zsh: correct '%R' to '%r' ? ([Y]es/[N]o/[E]dit/[A]bort) '
 | 
						|
 | 
						|
# }}}
 | 
						|
# History {{{
 | 
						|
HISTFILE=~/.zsh/histfile
 | 
						|
HISTSIZE=1000
 | 
						|
SAVEHIST=50000
 | 
						|
# }}}
 | 
						|
# Other ZSH options {{{
 | 
						|
autoload -U colors
 | 
						|
colors
 | 
						|
 | 
						|
autoload -U zmv
 | 
						|
 | 
						|
# .. -> cd ../
 | 
						|
setopt autocd
 | 
						|
 | 
						|
# cd /etc/**/foo/blub searches ;)
 | 
						|
setopt extendedglob
 | 
						|
 | 
						|
# push cds to directory stack
 | 
						|
setopt auto_pushd
 | 
						|
 | 
						|
# don't push something twice
 | 
						|
setopt pushd_ignore_dups
 | 
						|
 | 
						|
# don't kill jobs when exiting shell
 | 
						|
setopt no_hup
 | 
						|
# and don't warn
 | 
						|
setopt no_check_jobs
 | 
						|
 | 
						|
# show us when some command didn't exit with 0
 | 
						|
setopt print_exit_value
 | 
						|
 | 
						|
# makepkg -g > PKGBUILD
 | 
						|
# zsh: file exists: PKGBUILD
 | 
						|
#
 | 
						|
# work saved ;)
 | 
						|
setopt no_clobber
 | 
						|
 | 
						|
setopt inc_append_history
 | 
						|
setopt no_bg_nice
 | 
						|
setopt share_history
 | 
						|
#setopt bang_hist
 | 
						|
setopt extended_history
 | 
						|
#setopt hist_reduce_blanks
 | 
						|
setopt hist_ignore_space
 | 
						|
setopt hist_find_no_dups
 | 
						|
setopt hist_ignore_dups
 | 
						|
setopt nohistverify
 | 
						|
setopt prompt_subst
 | 
						|
#setopt hist_fcntl_lock
 | 
						|
setopt always_to_end
 | 
						|
 | 
						|
unsetopt auto_remove_slash
 | 
						|
 | 
						|
# show the output of time if commands takes longer than n secs (only user+system)
 | 
						|
REPORTTIME=5
 | 
						|
 | 
						|
# allow comments in interactive shells
 | 
						|
setopt interactivecomments
 | 
						|
 | 
						|
# ignore lines starting with a space
 | 
						|
setopt hist_ignore_space
 | 
						|
 | 
						|
# disable XON/XOFF flow control (^s/^q)
 | 
						|
stty -ixon
 | 
						|
 | 
						|
# }}}
 | 
						|
# Aliases {{{
 | 
						|
# better ask before we lose data
 | 
						|
alias rm='rm -Iv'
 | 
						|
alias cp='cp -iv'
 | 
						|
alias mv='mv -iv'
 | 
						|
 | 
						|
# I don't like bytes
 | 
						|
alias dum='du -kh --max-depth=2'
 | 
						|
alias dus='du -skh'
 | 
						|
alias du='du -kh'
 | 
						|
alias df="df -Th"
 | 
						|
 | 
						|
# function to make ls look nice is below
 | 
						|
alias ls='ls -rhbtF --color=auto'
 | 
						|
alias ll='ls -rhbtF --color=auto -l'
 | 
						|
alias la='ls -rhbtF --color=auto -a'
 | 
						|
alias lla='ls -rhbtF --color=auto -la'
 | 
						|
alias lld='ls -rhbtF --color=auto -ld'
 | 
						|
 | 
						|
alias grep='grep --color'
 | 
						|
 | 
						|
alias mkdir='nocorrect mkdir'
 | 
						|
alias wget='nocorrect noglob wget'
 | 
						|
 | 
						|
alias p='pacman'
 | 
						|
alias sd='systemctl --no-pager'
 | 
						|
 | 
						|
alias is="iostat -Nyxm 2"
 | 
						|
 | 
						|
alias nocomment='egrep -v "^\s*(#|$)"'
 | 
						|
alias wgetc="wget --content-disposition"
 | 
						|
# }}}
 | 
						|
# Completion stuff {{{
 | 
						|
autoload -Uz compinit
 | 
						|
compinit
 | 
						|
 | 
						|
unsetopt correct_all
 | 
						|
 | 
						|
zstyle :compinstall filename '$HOME/.zshrc'
 | 
						|
 | 
						|
# performance tweaks
 | 
						|
zstyle ':completion:*' use-cache on
 | 
						|
zstyle ':completion:*' cache-path $HOME/.zsh/cache
 | 
						|
zstyle ':completion:*' use-perl on
 | 
						|
 | 
						|
# completion colours
 | 
						|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
 | 
						|
 | 
						|
zstyle ':completion:*' completer _complete _match _approximate
 | 
						|
zstyle ':completion:*:match:*' original only
 | 
						|
 | 
						|
# ignore completion for commands we don't have
 | 
						|
zstyle ':completion:*:functions' ignored-patterns '_*'
 | 
						|
 | 
						|
# get rid of .class and .o files for vim
 | 
						|
zstyle ':completion:*:vim:*' ignored-patterns '*.(class|o)'
 | 
						|
 | 
						|
# show menu when tabbing
 | 
						|
zstyle ':completion:*' menu yes select
 | 
						|
 | 
						|
# better completion for kill
 | 
						|
zstyle ':completion:*:*:kill:*' command 'ps --forest -u$USER -o pid,%cpu,tty,cputime,cmd'
 | 
						|
 | 
						|
# Provide more processes in completion of programs like killall:
 | 
						|
zstyle ':completion:*:processes-names' command 'ps c -u ${USER} -o command | uniq'
 | 
						|
compdef pkill=killall
 | 
						|
 | 
						|
# bugged with zsh 4.3.10 for whatever reason
 | 
						|
zstyle ':completion:*' file-sort time
 | 
						|
#zstyle ':completion:*' file-sort name
 | 
						|
 | 
						|
# Ignore same file on rm
 | 
						|
zstyle ':completion:*:(rm|kill|diff):*' ignore-line yes
 | 
						|
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
 | 
						|
 | 
						|
# e.g. ls foo//bar -> ls foo/bar
 | 
						|
zstyle ':completion:*' squeeze-slashes true
 | 
						|
 | 
						|
# if in foo/bar don't show bar when cd ../<TAB>
 | 
						|
zstyle ':completion:*:cd:*' ignore-parents parent pwd
 | 
						|
 | 
						|
# Prevent lost+found directory from being completed
 | 
						|
zstyle ':completion:*:cd:*' ignored-patterns '(*/)#lost+found'
 | 
						|
 | 
						|
# ignore case when completing
 | 
						|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
 | 
						|
 | 
						|
# make some stuff look better
 | 
						|
# from: http://ft.bewatermyfriend.org/comp/zsh/zshrc.d/compsys.html
 | 
						|
zstyle ':completion:*:descriptions' format "- %{${fg[yellow]}%}%d%{${reset_color}%} -"
 | 
						|
zstyle ':completion:*:messages'     format "- %{${fg[cyan]}%}%d%{${reset_color}%} -"
 | 
						|
zstyle ':completion:*:corrections'  format "- %{${fg[yellow]}%}%d%{${reset_color}%} - (%{${fg[cyan]}%}errors %e%{${reset_color}%})"
 | 
						|
zstyle ':completion:*:default'      \
 | 
						|
	select-prompt \
 | 
						|
	"%{${fg[yellow]}%}Match %{${fg_bold[cyan]}%}%m%{${fg_no_bold[yellow]}%}  Line %{${fg_bold[cyan]}%}%l%{${fg_no_bold[red]}%}  %p%{${reset_color}%}"
 | 
						|
zstyle ':completion:*:default'      \
 | 
						|
	list-prompt   \
 | 
						|
	"%{${fg[yellow]}%}Line %{${fg_bold[cyan]}%}%l%{${fg_no_bold[yellow]}%}  Continue?%{${reset_color}%}"
 | 
						|
zstyle ':completion:*:warnings'     \
 | 
						|
	format        \
 | 
						|
	"- %{${fg_no_bold[red]}%}no match%{${reset_color}%} - %{${fg_no_bold[yellow]}%}%d%{${reset_color}%}"
 | 
						|
zstyle ':completion:*' group-name ''
 | 
						|
 | 
						|
# manual pages are sorted into sections
 | 
						|
# from: http://ft.bewatermyfriend.org/comp/zsh/zshrc.d/compsys.html
 | 
						|
zstyle ':completion:*:manuals'       separate-sections true
 | 
						|
zstyle ':completion:*:manuals.(^1*)' insert-sections   true
 | 
						|
 | 
						|
### highlight the original input.
 | 
						|
    zstyle ':completion:*:original' \
 | 
						|
        list-colors "=*=$color[red];$color[bold]"
 | 
						|
 | 
						|
### highlight words like 'esac' or 'end'
 | 
						|
    zstyle ':completion:*:reserved-words' \
 | 
						|
        list-colors "=*=$color[red]"
 | 
						|
 | 
						|
### colorize hostname completion
 | 
						|
    zstyle ':completion:*:*:*:*:hosts' \
 | 
						|
        list-colors "=*=$color[cyan];$color[bg-black]"
 | 
						|
 | 
						|
### colorize username completion
 | 
						|
    zstyle ':completion:*:*:*:*:users' \
 | 
						|
        list-colors "=*=$color[red];$color[bg-black]"
 | 
						|
 | 
						|
### colorize processlist for 'kill'
 | 
						|
    zstyle ':completion:*:*:kill:*:processes' \
 | 
						|
        list-colors "=(#b) #([0-9]#) #([^ ]#)*=$color[none]=$color[yellow]=$color[green]"
 | 
						|
# }}}
 | 
						|
 | 
						|
umask 077
 | 
						|
stty -ctlecho
 | 
						|
 | 
						|
# Show again
 | 
						|
stty echo
 | 
						|
 | 
						|
# vim: set ft=zsh:
 |