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 193 remaining solutions by signing in and submitting your own entry
#194 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

194 active golfers, 523 entries

Leaderboard (lowest score wins):
34
#121 - Nolen Royalty / @NolenRoyalty

04/20/2012 at 07:31PM

34
#122 - Casper Christensen / @Casper__C

11/26/2012 at 02:40PM

34
#123 - brett / @brettyukich

09/24/2013 at 09:53AM

34
#124 - Brian / @wyantb_reader

06/26/2014 at 11:00AM

34
#125 - albalitz / @_albalitz

06/18/2019 at 01:44PM

35
#126 - Leonard Chin / @lchin

12/29/2010 at 02:15PM

35
#127 - Cristi Balan / @evilchelu

01/01/2011 at 07:37AM

35
#128 - Hartator / @Hartator

05/27/2011 at 03:38PM

35
#129 - You-Siang Lin / @yslinnctu

11/29/2011 at 02:46PM

35
#130 - Maciej Suchecki / @mcSuchecki

12/11/2011 at 12:28AM

35
#131 - じょり / @jyori112

06/03/2021 at 03:05PM

35
#132 - Michel Viktor / @tomkpz

07/29/2021 at 02:21AM

36
#133 - Takayuki Tsukitani / @tsukkee

12/30/2010 at 06:27AM

36
#134 - Vincent Isambart / @vincentisambart

12/31/2010 at 11:40AM

36
#135 - Philipp / @klmann232

01/10/2011 at 12:35AM

36
#136 - Cameron White / @_cameronwhite

01/11/2011 at 05:39AM

36
#137 - Kyle Fuller / @kylefuller

04/15/2012 at 07:52PM

36
#138 - うえっち / @uh_tomo

12/05/2012 at 07:07AM

36
#139 - A. N. / @arez42

10/24/2013 at 04:18PM

36
#140 - Ram Tamtam / @ramtamtamtam

07/02/2014 at 11:56AM

37
#141 -  Ikhsan Maulana / @ixandidu

12/30/2010 at 12:00PM

37
#142 - Dave Bradford / @dbradf

06/17/2011 at 11:23PM

38
#143 - Lance Becker / @lrbecker

12/29/2010 at 05:48AM

38
#144 - Fer Enaf / @0x00C0FFEE

12/29/2010 at 11:20AM

38
#145 - Darcy Parker / @DarcyParker

11/12/2012 at 05:27PM

38
#146 - Brian Olpin / @bolpin

05/03/2014 at 04:45AM

38
#147 - Martin Liberg / @marreman

02/07/2015 at 07:15PM

38
#148 - zmf_tim / @zmf_tim

08/09/2018 at 10:14PM

39
#149 - Alison Rowland / @arowla

12/29/2010 at 05:44AM

39
#150 - Jason Morrison / @jayunit

12/29/2010 at 02:23PM