philc / philc/vimium

Conflict with Vim mode in rich text editors(like ACE) - can't exit insert mode in the text area

Open
#2,764 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
27k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Chrome version:

Google Chrome	62.0.3202.62 (Official Build) (64-bit)
Revision	9da914b118cb0d10d715ccc4ad20575a0305a304-refs/branch-heads/3202@{#700}
OS	Linux
JavaScript	V8 6.2.414.32
Flash	27.0.0.183 /home/idanarye/.config/google-chrome/PepperFlash/27.0.0.183/libpepflashplayer.so
User Agent	Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36

Vimium version: 1.61.1

Some webapps use a rich text editor - like ACE - that may support a Vim layout. These usually use <Esc>/<C-[> to exit insert mode - but Vimium captures these keys first and use them to exit the text area!

To reproduce - go to https://ace.c9.io/build/kitchen-sink.html, choose Vim for Key Binding, enter the text editor, and press i to enter insert mode. Without Vimium pressing <Esc>/<C-[> will exit insert mode. With Vimium - they'll exit the entire text area.

I... don't really have a solution to propose. It would be nice if Vimium could detect that it's inside these a Vim mode rich text editor and ignore these keys, but then you wouldn't be able to exit the text area. Maybe using <Esc> to exit the text area and leaving <C-[> to be handled by the component?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue at the ACE kitchen-sink page with Vim key binding, then inspect Vimium's handling of Esc and Ctrl-[ while focus is inside a rich text editor. The behavior is fixed when ACE can exit insert mode without losing Vimium's intended text-area exit behavior; the issue leaves the preferred key mapping undecided.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, vim
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.