diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index f9968515..d6f49559 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -144,18 +144,20 @@ zle -N editor-info # Ensures that $terminfo values are valid and updates editor information when # the keymap changes. function zle-keymap-select zle-line-init zle-line-finish { - # The terminal must be in application mode when ZLE is active for $terminfo - # values to be valid. - case "$0" in - (zle-line-init) - # Enable terminal application mode. - echoti smkx - ;; - (zle-line-finish) - # Disable terminal application mode. - echoti rmkx - ;; - esac + # If it has the respective capability, the terminal should be in application + # mode when ZLE is active for $terminfo values to be valid. + if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then + case "$0" in + (zle-line-init) + # Enable terminal application mode. + echoti smkx + ;; + (zle-line-finish) + # Disable terminal application mode. + echoti rmkx + ;; + esac + fi # Update editor information. zle editor-info