Tuesday, January 6, 2015

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

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.

Best,
Christian

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