zsh-vi-mode icon indicating copy to clipboard operation
zsh-vi-mode copied to clipboard

Broken zsh completion menu

Open anuvyklack opened this issue 2 years ago • 17 comments

General information

  • Operating system: Pop!_OS 21.04
  • ZSH framework: none
  • ZSH version: 5.8-6
  • ZVM version: 82f00eaefc95165f4524e77312db0d216a64a7ad

Basic examination

  • [x] I have read through the README page
  • [x] I have the latest version of zsh-vi-mode
  • [x] I have tested with another terminal program: kitty, gnome-terminal, tilix

Problem description

On the latest commit (82f00eaefc95165f4524e77312db0d216a64a7ad) zsh completion menu broke inside tmux. Outside of tmux it works.

Reproduction steps

  1. setopt menu_complete
  2. enter tmux, print any command (cd for example) and press Tab

https://user-images.githubusercontent.com/13056013/132378718-6d132039-9cb8-44d2-9c8f-07c9c80c0f4d.mov

anuvyklack avatar Sep 07 '21 16:09 anuvyklack

Hi @anuvyklack

Thanks for your reporting. I will work on this issue as soon as possible.

Thanks and Regards

jeffreytse avatar Sep 08 '21 03:09 jeffreytse

Hi @anuvyklack

I can't reproduce this issue in my environment. Could you please try this version 1549325615a5da5ec570289dfa08687cece1c5f6, and feedback me the result?

Thanks and Regards

jeffreytse avatar Sep 08 '21 10:09 jeffreytse

1549325 works fine.

anuvyklack avatar Sep 08 '21 10:09 anuvyklack

@anuvyklack Could you please provide me the information by command echo $TERM

jeffreytse avatar Sep 08 '21 10:09 jeffreytse

tmux-256color

anuvyklack avatar Sep 08 '21 12:09 anuvyklack

@anuvyklack Could you please provide me a minimum .zshrc file which can reproduce this issue to have further check?

jeffreytse avatar Sep 09 '21 02:09 jeffreytse

@jeffreytse I also had this issue. Reverting to 1549325 fixed it, and I managed to trace it down to the following changes:

-  zvm_update_cursor
+  if [[ -n $TMUX ]]; then
+    zvm_update_cursor
+    # Fix display is not updated in the terminal of InteliJ IDE
+    zle redisplay
+  fi

Reverting this change fixed the issue for me.

stefanboca avatar Sep 20 '21 18:09 stefanboca

@StefanBoca Thanks for your reaching out, I have confirmed the reason of this issue, but I am still exploring a good way to fix this issue, at the same time, keep the compatibility of the terminal in IntelliJ IDE. Could you provide me a minimum .zshrc file which can reproduce this issue to have a further check? Thanks and Regards

jeffreytse avatar Sep 21 '21 06:09 jeffreytse

@jeffreytse My minimal .zshrc is

export ZSH="/home/user/.oh-my-zsh"
plugins=(zsh-vi-mode)
source $ZSH/oh-my-zsh.sh

If I load the plugin directly without loading Oh My Zsh, though, the problem disappears:

export ZSH="/home/user/.oh-my-zsh"
source $ZSH/custom/plugins/zsh-vi-mode/zsh-vi-mode.plugin.zsh

stefanboca avatar Sep 21 '21 14:09 stefanboca

Hi @anuvyklack @StefanBoca

Thanks for your patience, now this issue has been addressed and fixed. Please update your plugin to the latest version and try again.

Thanks and Regards

jeffreytse avatar Oct 04 '21 11:10 jeffreytse

Hello, @jeffreytse.

I'm sorry, but for me still doesn't work. The same: all commits after c1480b4 are broken.

anuvyklack avatar Nov 11 '21 20:11 anuvyklack

Hi @anuvyklack

For the temporary solution, you can comment the line L3152 to disable redisplay as below:

 if [[ -n $TMUX ]]; then
    zvm_update_cursor
    # Fix display is not updated in the terminal of IntelliJ IDE.
    # We should update display only when the last widget isn't a
    # completion widget
    #
    # PLEASE COMMENT BELOW LINE
    #
    # [[ $LASTWIDGET =~ 'complet' ]] || zle redisplay
 fi

Thanks & Regards

jeffreytse avatar Feb 21 '22 08:02 jeffreytse

Same problem here. My environment:

General information

Linux

  • Operating system: Linux 5.9.16-1-MANJARO x86_64
  • ZSH framework: none
  • ZSH version: 5.8 (x86_64-pc-linux-gnu)
  • ZVM version: 7878372
  • TMUX version: 3.2a
  • Terminal emulator: wezterm 20220101-133340-7edc5b5a

MacOS

  • Operating system: Darwin 20.6.0 x86_64
  • ZSH framework: none
  • ZSH version: 5.8.1 (x86_64-apple-darwin20.6.0)
  • ZVM version: 7878372
  • TMUX version: 3.2a
  • Terminal emulator: iTerm2 Build 3.4.15

Reproduction steps

  1. ~/.zshrc
    autoload -U +X compinit && compinit
    zstyle ':completion:*' menu yes select
    source /Users/raidou/repos/zsh-vi-mode/zsh-vi-mode.zsh
    
  2. enter tmux
  3. input ls and press tab more than twice

weirongxu avatar Feb 22 '22 04:02 weirongxu

I am also running into this issue. My environment is structurally the same as @weirongxu 's MacOS setup. Thank you so much for the workaround. Commenting out the zle redisplay fixes it for me. I'm leaving a comment just so you can gauge the impact and priority for this fix. Also, I'd hate to miss out on future updates because I'm no longer tracking upstream. Thanks so much for all your hard work on this plugin!

michaelorr avatar Apr 20 '22 02:04 michaelorr

I have pushed up a PR which attempts to fix this issue: https://github.com/jeffreytse/zsh-vi-mode/pull/191

I cannot test in IntelliJ and would love if someone were able to verify the behavior there.

michaelorr avatar Aug 23 '22 17:08 michaelorr

Barring any further bug reports here, I think this is fixed by https://github.com/jeffreytse/zsh-vi-mode/pull/191

michaelorr avatar Sep 28 '22 02:09 michaelorr

Thank you everyone for the helpful diagnostic information above that led to the fix and thank you to @jeffreytse for maintaining this project and merging my commit!

michaelorr avatar Sep 28 '22 02:09 michaelorr