VSCodeVim / VSCodeVim/Vim

Chinese input repeats characters when using VSCodeVim in insert mode

Open
#9,668 31 comments 18 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
15.2k
Forks
1.5k
Avg merge
3d 18h
Merged PRs (30d)
6

Description

Description

When using Chinese input methods (including Baidu IME, Microsoft Pinyin, etc.) in VS Code with the VSCodeVim extension enabled, all Chinese characters and punctuation are entered twice in insert mode. This issue does not occur when the Vim extension is disabled.

Steps to Reproduce

  1. Enable the VSCodeVim extension
  2. Use any Chinese input method (e.g., Baidu IME, Microsoft Pinyin)
  3. Enter insert mode (i)
  4. Type any Chinese character or punctuation

Expected behavior: Characters should be entered normally, only once
Actual behavior: Each character is entered twice

System Info

  • OS: Windows 11
  • VS Code version: 1.101
  • VSCodeVim version: 1.30.1
  • IME: Baidu IME / Microsoft Pinyin

Additional Notes

This issue persists across different input methods and does not occur in other editors. Disabling the Vim extension fixes the issue.

I've tried:

  • Disabling all other extensions ✔️
  • Reinstalling input methods ✔️
  • Using vim.handleKeys setting (partially helpful) ✔️
  • Enabling Neovim mode (works but requires extra setup) ✔️

Would appreciate any insight or possible fixes. Thank you!

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

Start by reproducing the duplication in VS Code 1.101 with VSCodeVim 1.30.1, using a Chinese input method in insert mode and comparing behavior with the extension disabled. Trace the insert-mode input handling and review the existing issue discussion for clues. Done means Chinese characters and punctuation are entered once without requiring Neovim mode.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.