Skip to content

Wrong display width for U+24C2 CIRCLED LATIN CAPITAL LETTER M #20989

Description

@zahlman

Steps to reproduce

With Vim configured to use UTF-8:

echo ⓁⓂⓃ > test.txt
vim text.txt

Expected behaviour

The circled letters should appear next to each other, each occupying a single terminal cell, as they do on the command line.

Instead, a space appears after the Ⓜ, as if it had been incorrectly detected as a "wide" character. This only appears to affect M and not the rest of the circled-capital-letter alphabet.

Unlike with #16966, #14590 etc. no variation selector is involved here.

Further: trying to edit this text causes inconsistent rendering. The character width may appear corrected, only to move back when returning to normal mode. In some cases, a double glyph (not recognized as part of the text) appears until a redraw.

Version of Vim

9.1.0016-1ubuntu7.18

Environment

GNOME Terminal 3.52.0 (xterm-256color) on Linux Mint 22.3, Bash 5.2.21

I'm using the distro-packaged Vim, fully described:

VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Jul 13 2026 17:17:48)
Included patches: 1-16, 647, 678, 697
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge version without GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       -tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
-balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
-browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     -perl              +title
+channel           +ipv6              +persistent_undo   -toolbar
+cindent           +job               +popupwin          +user_commands
-clientserver      +jumplist          +postscript        +vartabs
-clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          -ruby              +wildignore
+cursorbind        -lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con        +mksession         +smartindent       +writebackup
+diff              +modify_fname      +sodium            -X11
+digraphs          +mouse             -sound             +xattr
-dnd               -mouseshape        +spell             -xfontset
-ebcdic            +mouse_dec         +startuptime       -xim
+emacs_tags        +mouse_gpm         +statusline        -xpm
+eval              -mouse_jsbterm     -sun_workshop      -xsmp
+ex_extra          +mouse_netterm     +syntax            -xterm_clipboard
+extra_search      +mouse_sgr         +tag_binary        -xterm_save
-farsi             -mouse_sysmouse    -tag_old_static    

It's hard to imagine that Debian introduced the issue, but please let me know if I should contact them instead.

Logs and stack traces

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions