aboutsummaryrefslogtreecommitdiff
path: root/.zshrc
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2020-08-14 11:28:35 +0200
committerPatrick Spek <p.spek@tyil.nl>2021-08-14 11:59:42 +0200
commite9eaeebcc348581c58cffbaa53071c20c9eb4bd7 (patch)
tree3b85917e04127ac38b36b2d690dc3fa28a1587ea /.zshrc
parentf7252519beabb35fb2412992a971f20e0d4048a9 (diff)
Add key fixes for zsh
Diffstat (limited to '.zshrc')
-rwxr-xr-x.zshrc29
1 files changed, 29 insertions, 0 deletions
diff --git a/.zshrc b/.zshrc
index b0a3b70..1242aea 100755
--- a/.zshrc
+++ b/.zshrc
@@ -32,6 +32,35 @@ function zle-move-to-buffer-beginning {
zle -N zle-move-to-buffer-beginning
+# zsh apparently doesn't read inputrc, so fix some "special" keys manually
+typeset -g -A key
+
+key[Home]="${terminfo[khome]}"
+key[End]="${terminfo[kend]}"
+key[Insert]="${terminfo[kich1]}"
+key[Backspace]="${terminfo[kbs]}"
+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]}"
+key[Shift-Tab]="${terminfo[kcbt]}"
+
+[[ -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[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
+[[ -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
+[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
+
# Bind some emacs-style bindings in insert mode
bindkey -M viins '^a' beginning-of-line
bindkey -M viins '^b' backward-char