Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 4d1b1b97c58eaa2a8a0002fc

Python Hello World! Reformatting

A novice Python using prints Hello World! and a pro shows him different way. Using vim to get into pro style from novice, win the challenge.

Start file
#!/usr/bin/python
import sys
a = "Hello World!"
sys.stdout.write(str(a[0]))
sys.stdout.write(str(a[1]))
sys.stdout.write(str(a[2]))
sys.stdout.write(str(a[3]))
sys.stdout.write(str(a[4]))
sys.stdout.write(str(a[5]))
sys.stdout.write(str(a[6]))
sys.stdout.write(str(a[7]))
sys.stdout.write(str(a[8]))
sys.stdout.write(str(a[9]))
sys.stdout.write(str(a[10]))
sys.stdout.write(str(a[11]))
End file
#!/usr/bin/python
import sys
a = "Hello World!"
for i in range(0, len(a)):
  sys.stdout.write(str(a[i]))

View Diff

4,15c4,5
< sys.stdout.write(str(a[0]))
< sys.stdout.write(str(a[1]))
< sys.stdout.write(str(a[2]))
< sys.stdout.write(str(a[3]))
< sys.stdout.write(str(a[4]))
< sys.stdout.write(str(a[5]))
< sys.stdout.write(str(a[6]))
< sys.stdout.write(str(a[7]))
< sys.stdout.write(str(a[8]))
< sys.stdout.write(str(a[9]))
< sys.stdout.write(str(a[10]))
< sys.stdout.write(str(a[11]))
---
> for i in range(0, len(a)):
>   sys.stdout.write(str(a[i]))

Solutions by @conorkirkman:

Unlock 10 remaining solutions by signing in and submitting your own entry
Created by: @Ujjwol

350 active golfers, 897 entries

Solutions by @conorkirkman:
40
#18 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:48PM

40
#>18 - Conor Kirkman / @conorkirkman

07/18/2013 at 07:50PM

41
#>50 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:45PM

42
#>107 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:44PM

43
#>152 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:43PM

44
#>213 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:42PM

45
#>262 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:40PM

46
#>281 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:38PM

50
#>321 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:20PM

51
#>325 - Conor Kirkman / @conorkirkman

07/18/2013 at 06:16PM