Markus wrote:
> I have adapted my relativenumber patch to Vim 7.2a, initial version was from
> 21.02.2008. Unfortunately it didn't get into mainline yet.
> 
> Short description:
> Set the new option 'relativenumber' or 'rnu' to display relative line numbers.
> With it you can just read the values for [count], that is used in very many
> commands (e.g. j k + - y d c < > gq gw =), without calculating it by yourself.
> This evolves the power of the count mechanism more than ever.

Hi,

I remember Nick Gravgaard already needed such option and I wrote a simple vim
script doing that, with no patch. It is not ideal of course (no events used,
for example - one must press a hot key with this alpha version of the script)
but it shows the problem probably has a solution even using vim script language
only. What do you think?

Milan

P.S.: the old e-mail with the script:

> > 
> > Nick Gravgaard <[EMAIL PROTECTED]> escrit:
> > 
> > > if Vim could display relative line numbers
> > > in the left hand margin (with the current
> > > line being 1, the next being 2, and so on)
> > 
> > 
> > Yes, this is easy, vim can.
> > 
> > 
> > This is easy implementable in  vimscript
> > using the *SIGNS* (:help signs).
> > Plus, use the CursorMoved autocommand.
> > 
> > Learn vim scripting yourself, or ask someone
> > who has vimscript experience to write such script.
> > Couple of hours if you already have experience with
> > vimscript, or several days if it's your first nontrivial vim script.
> 
> I've tried it. It's my first attempt to write vim script but it seems it 
> works.
> I hope it helps you, Nick. Feel free to modify it etc.
> 
> BTW: Does some experienced vim scripter know how to define a sign with
> text=' 1' (starting with a space)? I wanted to align numbers to the right but 
> I
> failed. None of "escaping" syntaxes worked.
> 
> Milan
> --
> Milan Vancura, Prague, Czech Republic, Europe
> 
> > 

> function! RelLinesInit ()
>       sign define l_0 text=-- texthl=Search
>       let index=1
>       while index<=70
>               let sindex = (index < 10 ? "0" : "") . index
>               exe "sign define l_" . index . " text=" . sindex . " 
> texthl=Search"
>               let index+=1
>       endwhile
> endfunction
> 
> function! RelLines ()
>       call RelLinesClear()
>       let lcur=line(".")
>       let ltop=line("w0")
>       let lbot=line("w$")
>       let index=ltop
>       while index <= lbot
>               let inum=index-lcur
>               let anum= inum < 0 ? -inum : inum
>               if anum < 70
>                       exe "sign place " . (70 + inum) . " line=" . index . " 
> name=l_" . anum . " buffer=" . bufnr("%")
>               endif
>               let index+=1
>       endwhile
> endfunction
> 
> function! RelLinesClear ()
>       let index=0
>       while index<=140
>               exe "silent sign unplace " . index . " buffer=" . bufnr("%")
>               let index+=1
>       endwhile
> endfunction
> 
> map <silent> <special> <F11> :call RelLines()
> 
> map <silent> <special> <F12> :call RelLinesClear()
> 
> 
> call RelLinesInit()



--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui