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 Answer 1

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.)

3
  • 2
    The correct term for these is "Combining characters".
    – wasamasa
    Dec 6, 2015 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, 2015 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, 2016 at 13:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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