5

For a text "naïve", for example, and the cursor is at "n", if I press vll, "naï" is highlighted, but if I press y, the yanked text is "nai", not "naï".

How to make visual selection to include all diacritics/combining characters at the selection ending?

1

I can confirm the issue on my machine. May be a bug, or may simply be a product of encodings.

It appears to be the case that your "naïve" (as transmitted to me through elfeed) uses a regular "i" with some sort of visual diacritics rather than the unicode "ï". You can tell by putting the cursor on your "ï" and running M-x what-cursor-position, which should return something like:

Char: i (105, #o151, #x69) point=321 of 343 (93%) column=1

Here's what you get with "naïve" when you use the unicode "ï":

Char: ï (239, #o357, #xef, file #xC3 #xAF) point=446 of 449 (99%) column=61

If you use unicode, evil will realize that you're talking about a single character. So: unicode encoding and entry in probably the most effective way to fix the problem.

The practical step if you can't do that is to move one more point over. So, for example, vll visually highlights "naï" but yanking only gets you "nai". vlll visually highlights "naïv" and yanking gets you "naï".

(Note that I've mixed-and-matched the unicode "ï" in here so that the visuals will show up.)

| improve this answer | |
  • 2
    The correct term for these is "Combining characters". – wasamasa Dec 6 '15 at 17:57
  • In some languages, there is no Unicode characters to represent each combination, for example, ကြီး (= က+ြ+ီ+း) in Burmese. Adding more ls to move cursor is hard when there is multiple combining characters, because there is no visual indication to indicate "current" combining character. – aggu Dec 7 '15 at 9:56
  • Could you please post your issue in Evil issues tracker? bitbucket.org/lyro/evil/issues?status=new&status=open – ReneFroger Jan 5 '16 at 13:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.