Re: ZWJ paste from clipboard problem (unicode)
"Daniil Rozanov" <[email protected]>
| Newsgroups | gmane.comp.shells.zsh.devel,gmane.comp.shells.zsh.user |
|---|---|
| Message-ID | <[email protected]> |
On Tue Apr 1, 2025 at 5:07 AM +04, Mikael Magnusson wrote: > On Mon, Mar 31, 2025 at 11:23 PM Daniil Rozanov <[email protected]> wrote: >> >> On Mon Mar 31, 2025 at 11:31 PM +04, Bart Schaefer wrote: >> > On Mon, Mar 31, 2025 at 12:13 PM Daniil Rozanov <[email protected]> wrote: >> >> >> >> When trying to paste "👩" (U+1F469 U+1F3FB U+200D U+1F9B0) emoji, zsh >> >> prints two emojis and "<200d>" in between. >> > >> > Try "setopt combining_chars" >> > >> > Additional tweaks may be needed if your terminal is using bracketed paste mode. >> >> Thanks! Now it pastes pretty emoji. But now there is another problem, >> which is character's width is more than expected. And with some special >> emojis it works wrong: duplicated display on paste, backspase erases >> kinda parts of emoji instead of remove it all at once. Btw this >> behaviour now is similar to bash. >> >> Maybe zsh has some group of settings which handle unicode? > > What you want is not theoretically possible as far as I know. > Combining emojis is optional according to the specs, and zsh has no > way of knowing if a terminal will combine two particular emoji in a > zwj sequence, and thus has no idea how wide the sequence of characters > will be or when the terminal will start drawing on a new line. > > > -- > Mikael Magnusson As far as I know it is possible on some bunch of terminals. This possibility called "mode 2027", briefly described here: https://mitchellh.com/writing/grapheme-clusters-in-terminals So at least zsh can test terminal to know does it support grapheme clustering or not and work around this.