I'm working on a custom command to add strikethrough to text, using the Unicode 
COMBINING LONG STROKE OVERLAY, 0x0336.

In this command, I want to apply a strikethrough to a character, only if it is 
not already present.

This pattern fails because it doesn't match *anything* with regexpengine set to 
2, it does not match an unadorned character immediately before a struck-through 
base character, and it *does* match the last combining character in a word for 
some reason:

    [^\u0336]\%u0336\@!

This pattern also fails, because it matches already struck-through base 
characters for some reason (although it does the same thing in both engines):

    [^\u0336][^\u0336]\@=

What is the correct way to do this?

Full command (attempted):

    '<,'>s;\%#=1\%V[^\u0336]\%u0336\@!;\=submatch(0)."\u0336";g

Note, how I'm also limiting to a visual selection; so I'm trying to use the :s 
command for simplicity.

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to