dot/zshrc: Fix Emacs integration properly.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 9 May 2023 11:35:39 +0000 (12:35 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 9 May 2023 11:35:39 +0000 (12:35 +0100)
This was a mess.  I'd had a hack to inhibit line-editing in `dumb'
terminals for ages, but grew an extra one as an overreaction against
TRAMP's allergy to bracketted-paste.  Rationalize all of this.

  * Move the logic to inhibit line-editing into the right configuration
    section.

  * Only inhibit line-editing in `dumb' terminals that aren't running in
    Emacs.

  * Inhibit bracketted-paste in `dumb' terminals, but not otherwise.

The result is that I can still use line editing in `dumb' terminals, but
Emacs -- and particularly TRAMP -- work properly.

dot/zshrc

index 3466d6c..9565fd6 100644 (file)
--- a/dot/zshrc
+++ b/dot/zshrc
@@ -3,7 +3,6 @@
 ### Zsh session things.
 
 __mdw_shell=zsh
-case ${INSIDE_EMACS+t},$TERM in t,dumb) unsetopt zle ;; esac
 
 ###--------------------------------------------------------------------------
 ### History settings.
@@ -63,7 +62,8 @@ fi
 ###--------------------------------------------------------------------------
 ### Line editing.
 
-case $TERM in dumb) unsetopt zle ;; esac
+case ${INSIDE_EMACS+t},$TERM in t,dumb) unsetopt zle ;; esac
+case $TERM in dumb) unset zle_bracketed_paste ;; esac
 
 bindkey -e