vim
Generating a random number in vim
Submitted by mmorsi on Wed, 2009-10-28 19:18In 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 <SID>Rand(<q-args>)
nmap <F6> :Rand <CR>
nmap <F7> :Rand 100<CR>
nmap <F8> :Rand 100000<CR>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.
- mmorsi's blog
- Login to post comments
- Read more
Domestic Manners Font
Submitted by mmorsi on Sun, 2009-08-23 18:46I just found the "Domestic Manners" font that I really like and feel is very good for extended text editing (terminal, coding, blogging, etc). Installing it for Fedora users is really easy:
sudo yum install dustin-domestic-manners-fonts
fc-cache
You can set it in vim / your vimrc with:
set guifont=Domestic\ Manners\ 8
Also you can select it in the gnome-terminal font settings.
Attached are two screenshots of the font in action.
- mmorsi's blog
- Login to post comments
- Read more
Messing around with vim
Submitted by mmorsi on Thu, 2009-08-20 00:47So I've been playing around with vim to try to better my usage of the text editor and have found some very interesting features / plugins and one annoying pitfall which I want to share.
To start of, I'm no longer using the standard vim app, but rather gvim as I've been looking for better mouse support for a while. I've no need of the toolbar (I like keeping the menus around), and removing it is as simple as adding the following to your ~/.vimrc:
set guioptions-=T
Using tabs is nice with the gui (albiet also present w/ the regular text version), you can create a new one with :tabnew
I've installed the showmarks plugin which is useful for visualizing the line / column markers you have set in the file you are editing. I've just also found the project plugin which I now wonder how I've even lived without it (at one point I was considering writing a standalone app just to do what this plugin does) and makes configuring projects and files like you would in an IDE a cinch (I very much recommend trying it if you use vim, it takes less than an hour to learn / completely setup).
Unfortunately one relatively new feature I wanted to try doesn't work just right in the vim version that currently ships with Fedora. Omni-completion is a very powerful feature of vim that uses ctags to provide code-completion and other functionality to users editing documents. While it comes built in for a wide variety of languages, the Fedora vim version isn't built with the necessary flags for ruby support and thus auto-completion doesn't currently work.
If you don't mind building it yourself you can simply follow the following steps:
- yum remove vim-common
- yum install rpm-build ruby ruby-devel "perl(ExtUtils::Embed)" libacl-devel gpm-devel libXpm-devel wget # there might be other dependencies, if subsequent steps complain about things missing try to yum install them
- wget http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/vim-7.2.245-3.fc12.src.rpm
- Add the following line to your .rpmmacros " %_topdir ~/rpmbuild"
- rpmbuild --rebuild vim-7.2.245-3.fc12.src.rpm
- sudo yum localinstall ~/rpmbuild/RPMS/x86_64/vim-common-7.2.245-3.fc11.x86_64.rpm ~/rpmbuild/RPMS/x86_64/vim-enhanced-7.2.245-3.fc11.x86_64.rpm ~/rpmbuild/RPMS/x86_64/vim-X11-7.2.245-3.fc11.x86_64.rpm --nogpgcheck
Now vim / gvim will be installed on your system with ruby omni-completion support.
- mmorsi's blog
- Login to post comments
- Read more







