Wednesday, January 7, 2015

Re: How to highlight a number out of order with a script

On 07/01/2015 02:37 a.m., Christian Brabandt wrote:
> Am 2015-01-06 23:50, schrieb Cesar Romani:
>> I have a text in which all lines end in numbers, like in a table of
>> contents. The numbers are supposed to be in ascending order.
>> I'd like to write a script which would highlight the first number out of
>> order.
>> I don't want to sort the numbers, only to highlight where it is out of
>> order.
>>
>> Many thanks in advance,
>
> fu! MyHighlight(match)
> if exists("s:prev_no") && s:prev_no + 0 >= a:match+0
> let curpos = getpos('.')
> call add(w:highlight, matchadd('Error', '\%'. curpos[1]. 'l'.
a:match.
> '$'))
> endif
> let s:prev_no = a:match
> endfu
>
> fu! CheckOrder()
> if exists("w:highlight")
> sil! call map(w:highlight, 'matchdelete(v:val)')
> endif
> let w:highlight = []
> %s/\d\+$/\=MyHighlight(submatch(0))/n
> unlet! s:prev_no
> endfu
>
>
> save that to a file, source it and then :call CheckOrder() in your file.

Thanks Christian,

It works very well.
Can I also change s:prev_no to b:prev_no?

Best regards,

--
Cesar

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