X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=ff59f86b59d30010062d43b6b720c847bda4c621;hb=843ce28bcb3395a862bdb8fef45203b284364e3c;hp=c7a964e131ad074fc8c45788b71f3e63a768d08f;hpb=3c57d4b7e78e5f698e5659de4c71ba6df64be44a;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index c7a964e..ff59f86 100644 --- a/zsh/rc +++ b/zsh/rc @@ -86,7 +86,7 @@ setopt longlistjobs # Use Vi(m) style key bindings. bindkey -v -# Use jk to exit insert mode (jj is too slow). +# Use jk to exit insert mode (jj is too slow to type). bindkey 'jk' vi-cmd-mode # I don't need the arrow keys, I use ^N and ^P for this (see below). @@ -184,12 +184,12 @@ bindkey -a '^N' history-beginning-search-forward # Enable incremental search which is especially useful when the string is an # argument and not the command. -bindkey '^R' history-incremental-search-backward +bindkey '^R' history-incremental-pattern-search-backward # Also enable my usual use of Ctrl-P/Ctrl-N to get the previous/next matching # history entry. if [[ $ZSH_VERSION == (4.<4->*|<5->*) ]]; then - bindkey -M isearch '^P' history-incremental-search-backward - bindkey -M isearch '^N' history-incremental-search-forward + bindkey -M isearch '^P' history-incremental-pattern-search-backward + bindkey -M isearch '^N' history-incremental-pattern-search-forward fi # Automatically push cd-ed directories on the directory stack. @@ -211,7 +211,8 @@ autoload -Uz colors; colors zmodload zsh/datetime # Some shortcuts for colors. The %{...%} tells zsh that the data in between -# doesn't need any space, necessary for correct prompt drawing. +# doesn't need any space, necessary for correct prompt drawing. Use %F{color} +# in more recent zsh versions (here compatibility is important). local red="%{${fg[red]}%}" local blue="%{${fg[blue]}%}" local green="%{${fg[green]}%}" @@ -343,6 +344,11 @@ zshrc_longrun_preexec() { zshrc_resolve_fg_to_resumed_job_name $program program=$REPLY + # No background process found. + if [[ -z $program ]]; then + return + fi + # Don't track the time for certain (possible) long running processes which # need no automatic notification. for ignore in elinks man mutt vim; do @@ -767,7 +773,9 @@ zstyle ':completion:*:*:-command-:*' ignored-patterns './config.*' # Don't complete unwanted files with Vim. Thanks to Nomexous in #zsh on # Freenode (2010-06-06 04:54 CEST). See below for a way to complete them. zstyle ':completion:*:*:vim:*:all-files' ignored-patterns \ - '*.aux' '*.log' '*.pdf' \ + '*.aux' '*.log' '*.pdf' '*.bbl' '*.blg' '*.out' '*-blx.bib' '*.run.xml' \ + '*.o' \ + '*.pyc' \ '*.class' # Provide a fallback completer which always completes files. Useful when Zsh's @@ -777,11 +785,12 @@ zle -C complete-files complete-word _generic zstyle ':completion:complete-files:*' completer _files bindkey '^F' complete-files -# Completion for my wrapper scripts +# Completion for my wrapper scripts. compdef slocate=locate compdef srsync=rsync compdef srsync-incremental=rsync compdef svalgrind=valgrind +compdef sc=systemctl # CUSTOM ALIASES AND FUNCTIONS @@ -830,11 +839,14 @@ alias -g A1="| awk '{ print \$1 }'" alias -g A2="| awk '{ print \$2 }'" alias -g A3="| awk '{ print \$3 }'" alias -g G='| grep' +alias -g GB='| grep -vE "^Binary file .+ matches\$"' alias -g H='| head' alias -g P='| perl' alias -g S='| sort' +alias -g SL='| sort | less' alias -g T='| tail' alias -g U='| uniq' +alias -g X='`xsel -p || xclip -o`' # X selection # Make going up directories simple. alias -g ...='../..' @@ -1047,7 +1059,7 @@ zshrc_restart_precmd() { fi # Try to start a new interactive shell. If it fails, something is wrong. - # Don't kill our current session by execing it. + # Don't kill our current session by execing it, abort instead. zsh -i -c 'exit 42' if [[ $? -ne 42 ]]; then echo -n ${fg_bold[red]}