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 4d1ac1800a045132c0000011

Reformat a C golf submission

Take this C golf submission (for the "tiny but standards-compliant Hello World program" category, naturally), and turn it into formatted C code.

Start file
#include<stdio.h>
int main(void){puts("Hello world!");return 0;}
End file
#include <stdio.h>

int main(void)
{
    puts
("Hello world!");
   
return 0;
}

View Diff

--- hw.c        2010-12-28 21:01:54.000000000 -0800
+++ hw-indented.c       2010-12-28 21:04:56.000000000 -0800
@@ -1,2 +1,7 @@
-#include<stdio.h>
-int main(void){puts("Hello world!");return 0;}
+#include <stdio.h>
+
+int main(void)
+{
+    puts("Hello world!");
+    return 0;
+}

Solutions

The best way to learn is to practice. Below, you will find some of the solutions other golfers have entered. To unlock higher ranked solutions, submit your own entry which does as well or better than the solutions you can currently see - climb the ladder!

Check out these helpful resources to improve your Vim skills... Game on.

Unlock 208 remaining solutions by signing in and submitting your own entry
#209 Frank Hui / @frankhui - Score: 126 - 12/29/10 @ 06:39
:1,$ s/{/{\t/g<CR>:1,$ s/;/;\r\t/g<CR>:1,$ s/>\n/>\r\r/<CR>:1,$ s/{/\r{\r/<CR>:1,$ s/}/\r}\r/<CR><Esc>ddkddkk:1,$ s/\t/    /g<CR>:1,$ s/</ </<CR>:w<CR>:q<CR>

0 comments


Created by: @josh_triplett

209 active golfers, 612 entries

Leaderboard (lowest score wins):
30
#91 - Christopher Brew / @Seph1rothVII

02/06/2012 at 06:03PM

30
#92 - ajh / @AlexJHammel

12/24/2012 at 05:06PM

30
#93 - a24f0600 / @a24f0600

01/08/2013 at 03:48PM

30
#94 - Aaron Josephs / @aaronjosephs1

05/02/2013 at 02:03AM

30
#95 - Gurukandhamoorthi / @Gurukandhamoor1

08/08/2017 at 05:06PM

31
#96 - Andrew Scala / @agscala

12/29/2010 at 05:24AM

31
#97 - libicocco / @libicocco

12/29/2010 at 12:51PM

31
#98 - Mariano Guerra / @marianoguerra

12/29/2010 at 04:09PM

31
#99 - Juan C. Muller / @juancmuller

12/31/2010 at 04:30AM

31
#100 - Guillaume Bonnoron / @gbonnoron

12/31/2010 at 11:50AM

31
#101 - Jordi Romero / @jordiromero

01/07/2011 at 09:31PM

31
#102 - Oleg Roshupkin / @jjjahson

01/21/2011 at 01:01PM

31
#103 - Wesley Wong / @wesleymwwong

01/30/2011 at 10:10AM

31
#104 - RusAlex Pletnev / @RusAlexander

06/22/2012 at 09:15PM

31
#105 - cj / @cj01101

01/30/2014 at 08:07PM

31
#106 - Henry Dang / @henrydangchs

10/25/2017 at 08:47PM

32
#107 - pcapriotti / @pcapriotti

12/29/2010 at 11:37AM

32
#108 - Akira Matsuda / @a_matsuda

12/30/2010 at 04:42PM

32
#109 - greg / @kongo2002

12/31/2010 at 12:12AM

32
#110 - xhtmlforum / @xhtmlforum

02/01/2011 at 10:20PM

32
#111 - Joost / @vlabakje

02/20/2011 at 01:27PM

32
#112 - Vimgolf Pikob / @vimgolfpikob

12/08/2012 at 10:33PM

32
#113 - Johan Berg / @_berg85

01/24/2014 at 03:23PM

32
#114 - bratliff / @bratliff

08/10/2014 at 07:43AM

32
#115 - James / @Dronak

09/18/2014 at 08:39PM

32
#116 - Hugo / @szeyattai

08/20/2018 at 09:10AM

32
#117 - Brando / @brandonce

01/24/2025 at 08:27AM

33
#118 - Matt Edlefsen / @mattedlefsen

12/29/2010 at 08:19AM

33
#119 - Pierre / @Pihour

01/02/2011 at 04:19PM

33
#120 - vansan / @VinceVansan

08/26/2012 at 06:25PM