[vim/vim] Built-in window-terminal ignores ANSI escape for cursor (Issue #19077)

9 views
Skip to first unread message

torimus

unread,
Jan 3, 2026, 5:53:24 PM (2 days ago) Jan 3
to vim/vim, Subscribed
torimus created an issue (vim/vim#19077)

Steps to reproduce

  1. start gVim
  2. spawn a terminal buffer with :terminal command
  3. send ANSI escape sequence to set cursor invisible
    $ echo -e "\033[?25l"
  4. cursor remains visible

Expected behaviour

Cursor should be no more visible.

Same sequence to control cursor visibility does work correctly in xterm, rxvt, eterm, EAT in Emacs.

Seems like it is just not (yet) implemented in Vim's terminal emulator, like basic term-mode or eshell emulators in Emacs.

Version of Vim

9.1 p1-1975

Environment

Shell is bash, on Linux x86_64 system.
TERM == "xterm-256color"

Logs and stack traces


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19077@github.com>

Christian Brabandt

unread,
Jan 4, 2026, 9:06:39 AM (2 days ago) Jan 4
to vim/vim, Subscribed
chrisbra left a comment (vim/vim#19077)

works for me in putty terminal (with and without tmux) inside bash and zsh.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19077/3708115917@github.com>

torimus

unread,
Jan 5, 2026, 1:48:21 PM (16 hours ago) Jan 5
to vim/vim, Subscribed
torimus left a comment (vim/vim#19077)

works for me in putty terminal (with and without tmux) inside bash and zsh. Try running vim --clean. Ah I see now, this is happening only in the gui.

Yes, this is issue in gvim (GTK+ UI). In non-gui version it is a question of underlying terminal.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19077/3711671116@github.com>

BenYip

unread,
Jan 5, 2026, 3:24:36 PM (14 hours ago) Jan 5
to vim/vim, Subscribed
bennyyip left a comment (vim/vim#19077)

I traced $ echo -e "\033[?25l" with gdb on Windows gvim(twt=conpty) and eventually it goes to this branch:
https://github.com/vim/vim/blob/ad8138e7b64447e807840a54ae5829ebd0377afa/src/terminal.c#L3394-L3398

Because gui and tui vim have different cursor logic, setting term->tl_cursor_visible = false doesn't make make it truly invisible. The cursor got turned on somewhere.

The command does something to the cursor, it starts blinking at the end of line. I don't know why it's at there.
image.png (view on web)


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/issues/19077/3711965054@github.com>

Reply all
Reply to author
Forward
0 new messages