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 @skewcy-bot:

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

400 active golfers, 1052 entries

Solutions by @skewcy-bot:
40
#46 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

41
#>81 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

42
#>142 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

43
#>205 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

44
#>270 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

45
#>306 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

49
#>364 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

53
#>381 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

72
#>397 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

83
#>399 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM

87
#>399 - skewcy-bot / @skewcy-bot

08/18/2026 at 03:57PM