From 7e9463d37122160dde19c44bdbe9d3d1454743f3 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Mon, 12 Feb 2024 06:57:13 +0000 Subject: [PATCH] zsh enable case-insensitive completion Move transient prompt config into nix expression directly --- home/zsh/default.nix | 45 +++++++++++++++++++++++++++++++++++++++++- home/zsh/transient.zsh | 31 ----------------------------- 2 files changed, 44 insertions(+), 32 deletions(-) delete mode 100755 home/zsh/transient.zsh diff --git a/home/zsh/default.nix b/home/zsh/default.nix index 3e819ef7..ed212e58 100644 --- a/home/zsh/default.nix +++ b/home/zsh/default.nix @@ -7,11 +7,54 @@ enableVteIntegration = true; autocd = true; historySubstringSearch.enable = true; + history = { + extended = true; + ignoreDups = true; + ignoreSpace = true; + }; oh-my-zsh = { enable = true; plugins = ["colored-man-pages" "lol" "rand-quote"]; theme = ""; }; - initExtra = "source ${./transient.zsh}\n"; + completionInit = '' + autoload -Uz +X compinit && compinit + + ## case insensitive path-completion + zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' + zstyle ':completion:*' menu select + ''; + initExtra = '' + ## enable transient prompt + zle-line-init() { + emulate -L zsh + + [[ $CONTEXT == start ]] || return 0 + + while true; do + zle .recursive-edit + local -i ret=$? + [[ $ret == 0 && $KEYS == $"\4" ]] || break + [[ -o ignore_eof ]] || exit 0 + done + + local saved_prompt=$PROMPT + local saved_rprompt=$RPROMPT + PROMPT="> " + RPROMPT="" + zle .reset-prompt + PROMPT=$saved_prompt + RPROMPT=$saved_rprompt + + if ((ret)); then + zle .send-break + else + zle .accept-line + fi + return ret + } + + zle -N zle-line-init + ''; }; } diff --git a/home/zsh/transient.zsh b/home/zsh/transient.zsh deleted file mode 100755 index d01b945e..00000000 --- a/home/zsh/transient.zsh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env zsh - -zle-line-init() { - emulate -L zsh - - [[ $CONTEXT == start ]] || return 0 - - while true; do - zle .recursive-edit - local -i ret=$? - [[ $ret == 0 && $KEYS == $'\4' ]] || break - [[ -o ignore_eof ]] || exit 0 - done - - local saved_prompt=$PROMPT - local saved_rprompt=$RPROMPT - PROMPT='> ' - RPROMPT='' - zle .reset-prompt - PROMPT=$saved_prompt - RPROMPT=$saved_rprompt - - if ((ret)); then - zle .send-break - else - zle .accept-line - fi - return ret -} - -zle -N zle-line-init