From f33f61c82398a8d04cd57050981e7662ef1c64fa Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Sat, 3 Feb 2018 22:02:21 +0200 Subject: [PATCH] Fix keys on xterm* terminals --- .gitignore | 1 + modules/terminal.zsh | 49 +++++++++++++++++++++++--------------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index 5d7e293..3dbfab9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *~ .* zplug/ +terminfo_dump.txt diff --git a/modules/terminal.zsh b/modules/terminal.zsh index 9e7bfcc..d028d23 100644 --- a/modules/terminal.zsh +++ b/modules/terminal.zsh @@ -1,23 +1,26 @@ -# Part of this is from http://unix.stackexchange.com/q/62919 -# Fixes my navigation keys -#typeset -A key -#key[Home]=${terminfo[khome]} -#key[End]=${terminfo[kend]} -#key[Insert]=${terminfo[kich1]} -#key[Delete]=${terminfo[kdch1]} -#key[Up]=${terminfo[kcuu1]} -#key[Down]=${terminfo[kcud1]} -#key[Left]=${terminfo[kcub1]} -#key[Right]=${terminfo[kcuf1]} -#key[PageUp]=${terminfo[kpp]} -#key[PageDown]=${terminfo[knp]} -#[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line -#[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line -#[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode -#[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char -#[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history -#[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history -#[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char -#[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char -#[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" beginning-of-buffer-or-history -#[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" end-of-buffer-or-history +# +# Terminal quirks +# + +# Reclaim Ctrl-S and Ctrl-Q +stty -ixon +stty -ixoff + +# Emacs mode pls +bindkey -e + +# Insert, delete, home, end +bindkey "\e[2~" overwrite-mode +bindkey "\e[3~" delete-char +bindkey "\e[H" beginning-of-line +bindkey "\e[F" end-of-line + +# rxvt-unicode specials +bindkey "\e[7~" beginning-of-line +bindkey "\e[8~" end-of-line + + +#echo -e "Terminal: ${TERM}\n" > "${ZSHUPER_DIR}/terminfo_dump.txt" +#for key val in ${(kv)terminfo}; do +# echo "${key} -> ${val}" >> "${ZSHUPER_DIR}/terminfo_dump.txt" +#done