diff dot_zshrc @ 262:44d179225271

Add history substring search plugin
author zegervdv <zegervdv@me.com>
date Sun, 24 May 2020 10:24:04 +0200
parents 217fba8117c8
children fab71b4ac0b9
line wrap: on
line diff
--- a/dot_zshrc	Sat May 23 22:17:29 2020 +0200
+++ b/dot_zshrc	Sun May 24 10:24:04 2020 +0200
@@ -1,5 +1,8 @@
 # vim:ft=zsh
 
+source ~/.zsh/zsh-history-substring-search.zsh
+export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=green,fg=black'
+
 export LC_ALL=$LANG
 
 PROMPT='%F{cyan}%T%f %F{red}%m%f %F{blue}%~%b%f
@@ -10,14 +13,37 @@
 vim_cmd_mode="%F{green}[NRM]%f"
 vim_mode=$vim_ins_mode
 
+# Cursor mapping from nyquase/vi-mode
+function select_cursor() {
+  case $KEYMAP in
+    # Block cursor in normal and visual mode
+    vicmd) echo -ne "\e[2 q";;
+    # Line cursor in insert mode
+    main|viins) echo -ne "\e[5 q";;
+    # Else Block cursor
+    *) echo -ne "\e[2 q";;
+  esac
+}
+
 function zle-keymap-select {
   vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}"
   zle reset-prompt
+  zle -R
+  select_cursor
 }
 zle -N zle-keymap-select
 
+function zle-line-init() {
+  echoti smkx
+  zle reset-prompt
+  select_cursor
+}
+zle -N zle-line-init
+
 function zle-line-finish {
   vim_mode=$vim_ins_mode
+  echoti rmkx
+  echo -ne "\e[2 q"
 }
 zle -N zle-line-finish
 
@@ -32,6 +58,14 @@
 
 bindkey -v
 
+bindkey '^[[A' history-substring-search-up
+bindkey '^[[B' history-substring-search-down
+bindkey "$terminfo[kcuu1]" history-substring-search-up
+bindkey "$terminfo[kcud1]" history-substring-search-down
+bindkey '^p' history-substring-search-up
+bindkey '^n' history-substring-search-down
+
+
 export CLICOLOR=1
 export LS_COLORS='no=00;37:fi=00:di=00;33:ln=04;36:pi=40;33:so=01;35:bd=40;33;01:'