X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=6fcc820c9e5e2fda8064c0b3e39768939ce3ec00;hb=817179a8ad182e22b0aecf883926982743e0f26b;hp=902d184bc4c0970c17d7ec06b6493a163c0b2873;hpb=2dad868f3aa83676dde4b9891c49389e77b90a7e;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 902d184..6fcc820 100644 --- a/zsh/rc +++ b/zsh/rc @@ -5,9 +5,6 @@ source_debug "sourcing ~/.zsh/rc" # MISCELLANEOUS SETTINGS -# Use Vi(m) style key bindings. -bindkey -v - # Be paranoid, new files are readable/writable by me only. umask 077 @@ -33,6 +30,22 @@ setopt extendedglob setopt ignoreeof +# KEY BINDINGS + +# Not all bindings are done here, only those not specific to a given section. + +# Use Vi(m) style key bindings. +bindkey -v + +# Also use jj to exit insert mode. +bindkey 'jj' vi-cmd-mode + +# I don't need the arrow keys, I use ^N and ^P for this (see below). +bindkey -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D' +# Also not in Vi mode. +bindkey -a -r '^[OA' '^[OB' '^[OC' '^[OD' '^[[A' '^[[B' '^[[C' '^[[D' + + # FUNCTION SETTINGS # Make sure every entry in $fpath is unique. @@ -313,13 +326,13 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then fi # Prepend prefixes like in window_preexec(). + if [[ -n $window_root ]]; then + name="!$name" + fi if [[ -n $SSH_CONNECTION ]]; then - window_title "@$name" - elif [[ -n $window_root ]]; then - window_title "!$name" - else - window_title $name + name="@$name" fi + window_title $name # Just reset the name, so no screen reset necessary for the moment. window_reset= @@ -334,6 +347,9 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then window_title() { print -n "\e]2;$1\e\\" } + else + # Fallback if another TERM is used. + window_title() { } fi # Add the preexec() and precmd() hooks. @@ -401,10 +417,12 @@ zstyle ':completion:*:(hg|git)*:*' ignore-line yes # typing the command. # # Thanks to Vadim Zeitlin for a fix (--) so lines -# starting with - don't cause errors. +# starting with - don't cause errors; and to Nadav Har'El +# for a fix (-r) to handle whitespace/quotes +# correctly, both on the Zsh mailing list. TRAPINT() { # Store the current buffer in the history. - zle && print -s -- $BUFFER + zle && print -s -r -- $BUFFER # Return the default exit code so Zsh aborts the current command. return $1