X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=a7d81ca6d1bc58dcfa04c818dae2df68981a5159;hb=6626db2476bcf9080b213dea22d7ae5d088d3a2c;hp=0e1e2c9023fe8eb749d4d5bc1e6900a684b13616;hpb=2f5a072302b720721ebcccdc8375f10d97a72162;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 0e1e2c9..a7d81ca 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,36 @@ 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 -M viins 'jj' vi-cmd-mode + +# I don't need the arrow keys, I use ^N and ^P for this (see below). +bindkey -M viins -r '^[OA' +bindkey -M viins -r '^[OB' +bindkey -M viins -r '^[OC' +bindkey -M viins -r '^[OD' +bindkey -M viins -r '^[[A' +bindkey -M viins -r '^[[B' +bindkey -M viins -r '^[[C' +bindkey -M viins -r '^[[D' +# Also not in Vi mode. +bindkey -M vicmd -r '^[OA' +bindkey -M vicmd -r '^[OB' +bindkey -M vicmd -r '^[OC' +bindkey -M vicmd -r '^[OD' +bindkey -M vicmd -r '^[[A' +bindkey -M vicmd -r '^[[B' +bindkey -M vicmd -r '^[[C' +bindkey -M vicmd -r '^[[D' + + # FUNCTION SETTINGS # Make sure every entry in $fpath is unique. @@ -413,10 +440,11 @@ TRAPINT() { # Colorize stderr. Very useful when looking for errors. Thanks to # http://gentoo-wiki.com/wiki/Zsh for the basic script and Mikachu in #zsh on # Freenode (2010-03-07 04:03) for some improvements (-r, printf). It's not yet -# perfect and doesn't work with some interactive stderr output, but in those +# perfect and doesn't work with su and git for example, but it can handle most +# interactive output quite well (even with no trailing new line) and in those # cases the E alias can be used as workaround. -exec 2>>(while read -r line; do - printf '\e[91m%s\e[0m\n' "$line" +exec 2>>(while read -r -k -u 0 line; do + printf '\e[91m%s\e[0m' "$line"; print -n $'\0'; done &)