X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=c1ee1d4aa2236ec8f3306fd230eb14b55336640f;hb=37a28c07c5752711e5d1f4686a2b3f17d62ce3b7;hp=18c66952e56b0599fc8a481b046bb775358e065b;hpb=fd641de15b288191fca8ab4cfd17c85f03c24456;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 18c6695..c1ee1d4 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). @@ -142,8 +142,8 @@ autoload -Uz zmv # HISTORY SETTINGS # Use history and store it in ~/.zsh/history. -HISTSIZE=50000 -SAVEHIST=50000 +HISTSIZE=1000000 +SAVEHIST=1000000 HISTFILE=~/.zsh/history # Append to the history file instead of overwriting it and do it immediately # when a command is executed. @@ -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]}%}" @@ -777,7 +778,7 @@ 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 @@ -865,11 +866,15 @@ fi command tig --max-count=200 --branches --remotes --tags "$@" } -# Choose the "best" PDF viewer available: xpdf, then zathura (in the past -# zathura was preferred, but recent versions are completely broken: still no -# working search and no page-wise scrolling anymore). Also setup completion -# for `pdf`. -if (( $+commands[xpdf] )); then +# Choose the "best" PDF viewer available. Also setup completion for `pdf`. +if (( $+commands[katarakt] )); then + pdf() { + command katarakt "$@" 2>/dev/null & + disown %command + } + # No completion for katarakt yet. + compdef pdf=xpdf +elif (( $+commands[xpdf] )); then pdf() { command xpdf "$@" 2>/dev/null & disown %command @@ -921,7 +926,8 @@ fi # If not already in screen or tmux, reattach to a running session or create a # new one. This also starts screen/tmux on a remote server when connecting # through ssh. -if [[ $TERM != dumb && $TERM != linux && -z $STY && -z $TMUX ]]; then +if [[ $TERM != dumb && $TERM != dialup && $TERM != linux + && -z $STY && -z $TMUX ]]; then # Get running detached sessions. if [[ $zshrc_use_multiplexer = screen ]]; then session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }') @@ -975,7 +981,7 @@ if [[ $LD_PRELOAD != *libcoloredstderr.so* ]]; then # process when starting GNU screen/tmux (see above). else exec 2>>(while read -r -k -u 0 line; do - printf '\e[91m%s\e[0m' "$line" + printf '\e[91m%s\e[0m' $line print -n $'\0' done &) fi @@ -1023,7 +1029,7 @@ zshrc_restart_precmd() { fi local startup - strftime -s startup '%Y-%m-%d %H:%M:%S' "$zshrc_startup_time" + strftime -s startup '%Y-%m-%d %H:%M:%S' $zshrc_startup_time echo -n "${fg[magenta]}" echo -n "~/.zshrc modified since startup ($startup) ... " @@ -1042,12 +1048,12 @@ 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]}" + echo -n ${fg_bold[red]} echo 'failed to start new zsh!' - echo -n "${fg_bold[default]}" + echo -n ${fg_bold[default]} return fi