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 vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment