Generating a random number in vim

In the department of things I’ve spent far too much time working on, I just wrote a vim script that allows you to automatically insert a random number into the file you’re editing. It probably could use a little work, but does what I need it to do (easily generate random numbers for test fixtures). To use it yourself, add the following to your ~/.vimrc:

" generate random number at end of current line function! s:Rand(max) y a
redir @b
ruby << EOF rmax = VIM::evaluate("a:max") rmax = nil if rmax == "" printf rand(rmax).to_s EOF redir END let @a = strpart(@a, 0, strlen(@a) - 1) let @b = strpart(@b, 1, strlen(@b) - 1) let @c = @a . @b .s/.*/=@c/g endfunction command! -nargs=? Rand :call Rand() nmap :Rand nmap :Rand 100 nmap :Rand 100000

When using vim, simply enter command mode and type :Genrand <maxnumber> to generate a random number and insert it at the end of the line. Alternatively, simply hit <F7> to generate and insert a random number between 1 and 100.

Here are some useful links pertaining to scripting in vim.