From 8bbd141020793b90f345156826207f8adf6df303 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 28 May 2020 14:12:12 +0200 Subject: [PATCH] Tweak some binds and add quick buffer edit ^E command --- bindings.zsh | 40 ++++++++++++++++----------- custom/segments.zsh | 3 +- powerlevel-config/prompt-elements.zsh | 1 + 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/bindings.zsh b/bindings.zsh index b8abcaa..adc11dc 100644 --- a/bindings.zsh +++ b/bindings.zsh @@ -16,24 +16,25 @@ key[Right]="${terminfo[kcuf1]}" key[PageUp]="${terminfo[kpp]}" key[PageDown]="${terminfo[knp]}" key[ShiftTab]="${terminfo[kcbt]}" +key[Control-Left]="${terminfo[kLFT5]:-^[[1;5D}" # term db doesn't have these entries for ST, add defaults +key[Control-Right]="${terminfo[kRIT5]:-^[[1;5C}" -[[ -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[ShiftTab]}" ]] && bindkey -- "${key[ShiftTab]}" reverse-menu-complete +[[ -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[ShiftTab]}" ]] && bindkey -- "${key[ShiftTab]}" reverse-menu-complete +[[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word +[[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word -bindkey ' ' magic-space # [Space] - do history expansion - -bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word -bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word +bindkey ' ' magic-space autoload -Uz up-line-or-beginning-search down-line-or-beginning-search zle -N up-line-or-beginning-search @@ -53,3 +54,10 @@ if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then add-zle-hook-widget -Uz zle-line-init zle_application_mode_start add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop fi + +function edit-buffer() { + BUFFER="${EDITOR:-vi} $BUFFER" + zle accept-line +} +zle -N edit-buffer +bindkey -- '^E' edit-buffer # Quick edit diff --git a/custom/segments.zsh b/custom/segments.zsh index 515bf5e..6fbcf60 100644 --- a/custom/segments.zsh +++ b/custom/segments.zsh @@ -98,8 +98,7 @@ function prompt_c_todo() { local -a stats zstat -A stats +mtime -- todo.txt 2>/dev/null if [ ! -v _cprompts_todo ] || [ $_cprompts_todo[4] -ne $stats[1] ]; then - local IFS=$'\n' - local todofi=($(< todo.txt)) + local todofi=(${(f@)${mapfile[todo.txt]}}) local t_nf=0 local t_f=0 local colors=(red yellow green) diff --git a/powerlevel-config/prompt-elements.zsh b/powerlevel-config/prompt-elements.zsh index 9765ace..bf45ca9 100644 --- a/powerlevel-config/prompt-elements.zsh +++ b/powerlevel-config/prompt-elements.zsh @@ -22,6 +22,7 @@ POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS+=( c_weather c_covid_19 ) +zmodload zsh/mapfile # Required by the todo segment, is way faster fi POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS+=( newline