jeffreytse / zsh-vi-mode

💻 A better and friendly vi(vim) mode plugin for ZSH.
MIT License
3.31k stars 113 forks source link

Inconsistent Escape Behavior in ZVM Visual Mode #257

Open tummetott opened 11 months ago

tummetott commented 11 months ago

General information

Basic examination

Problem description

Hello, I've encountered a recurrent issue in ZVM where unintentional entry into visual mode leads to a challenging exit process. Often, by habit, I press i aiming to switch to insert mode, but this action instead initiates the operator pending mode within visual mode. This is an expected behavior of the mode. However, the problem arises when attempting to exit from this state. Repeatedly pressing ESC does not lead to an exit from the operator pending mode. It necessitates an additional action, the w key to select a word, before ESC successfully exits visual mode.

Reproduction steps

  1. Enter normal mode: Press ESC
  2. Switch to visual mode: Press v
  3. Activate operator pending mode: Press i or a
  4. Attempt to exit operator pending mode: Press ESC

Expected behavior

Upon completion of Step 4, the expectation is to exit operator pending mode directly with the ESC key.

94kai commented 7 months ago

i have the same problem

johnpyp commented 6 months ago

I've had the same issue for months at this point, only just realized it was caused by this specific behavior.

tummetott commented 6 months ago

@johnpyp Well you found the right lines of code but uncommenting it is no solution. It is valid vim behavior to enter operator pending mode pressing v -> a or i. The problem is that ZVM does not exit this mode when pressing ESC in this state.

johnpyp commented 6 months ago

Yeah, I just did that as a temporary patch. I tried to debug the issue but couldn't track down where the escape handling should actually happen... not familiar enough with the code / complex zsh.