Ad blocker interference detected!
Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers
Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.
created October 1, 2001 · complexity basic · author Brian Medley · version 5.7
Below is a way to number a set of lines. Here is an example before and after snapshot:
apple bob pear tree 1 apple 2 bob 3 pear 4 tree
This provides a command and a function. They both can be called with or without a range. In addition, they can be called with or without arguments. Without a range they operate on the current line.
There are two supported arguments. They are described below:
- arg1 the number to start at. The default is one. This will
number your selected lines sequentially. The start can be a number, ., $, or, 'x (like getline).
- arg2 Text to append after numbers. The default is a space.
To provide your functionality:
:%Nlist 20 :%call Nlist(20)
To make a list start at 1:
:'<,'>Nlist :'<,'>call Nlist()
To number the whole buffer (with it's actual line number):
:%Nlist :%call Nlist()
To number a subset of lines with their line number (and put a '] ' in front of every number):
:'<,'>Nlist . ]\ :'<,'>call Nlist(".", "] ") command! -nargs=* -range Nlist <line1>,<line2>call Nlist(<f-args>)
function! Nlist(...) range if 2 == a:0 let start = a:1 let append = a:2 elseif 1 == a:0 let start = a:1 let append = " " else let start = 1 let append = " " endif " try to work like getline (i.e. allow the user to pass in . $ or 'x) if 0 == (start + 0) let start = line(start) endif exe a:firstline . "," . a:lastline . 's/^/\=line(".")-a:firstline+start.append/' endfunction
There is now a plugin nlist.vim that does this. The plugin also handles justifying the numbers. I probably should have waited and not made this tip.