anthropics / anthropics/claude-code

[FEATURE] Vim mode: change cursor appearance based on insert/normal mode

Open
#94,891 0 comments 0 reactions 0 assignees View on GitHub
area:tui duplicate enhancement
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

## Problem Statement

When using vim editor mode, the cursor appearance doesn't change between insert and normal modes. In true vim editors, the cursor typically changes from a block (normal) to a beam/bar (insert), providing visual feedback about the current mode.

## Proposed Solution

Add cursor appearance configuration that adapts based on vim mode:
- Normal mode: block cursor
- Insert mode: beam/bar cursor

This could be controlled via `settings.json` and the `/settings` UI, or automatically when `editorMode: vim` is configured.

## Related Issues

- #20878 - General cursor style customization request
- #16086 - Earlier cursor style configuration request
- #10215 - Earlier cursor style customization request

## Use Case

Vim users expect visual mode indicators. This helps users quickly identify whether they're in insert or normal mode without relying on other indicators (statusline, etc.).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing Vim-mode handling, terminal cursor rendering, and the settings.json and /settings entry points mentioned in the issue. Determine how mode changes are represented and where cursor appearance can be configured. Done means normal mode shows a block cursor and insert mode shows a beam or bar, with the supported configuration path covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
vim
Domain
cli, developer-experience
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.