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 9v0066fbf17000000000042c

CaN yOuR ViM dO ThAt? #1

Tsoding's famous "Can your Vim do that?" https://youtu.be/Bafo3hhheHU?si=DfcT4sUEMTSAevnx&t=1091

Start file
void platform_fill_rect(i32 x, i32 y, i32 w, i32 h, u32 color)
{
}

void platform_stroke_rect(i32 x, i32 y, i32 w, i32 h, u32 color)
{
}

void platform_fill_text(i32 x, i32 y, const char *text, u32 size, u32 color, Align align)
{
}

void platform_stroke_line(i32 x1, i32 y1, i32 x2, i32 y2, u32 color)
{
}

void platform_panic(const char *file_path, i32 line, const char *message)
{
}

void platform_log(const char *message)
{
}

End file
void platform_fill_rect(i32 x, i32 y, i32 w, i32 h, u32 color)
{
    assert(0 && "TODO: platform_fill_rect");
}

void platform_stroke_rect(i32 x, i32 y, i32 w, i32 h, u32 color)
{
    assert(0 && "TODO: platform_stroke_rect");
}

void platform_fill_text(i32 x, i32 y, const char *text, u32 size, u32 color, Align align)
{
    assert(0 && "TODO: platform_fill_text");
}

void platform_stroke_line(i32 x1, i32 y1, i32 x2, i32 y2, u32 color)
{
    assert(0 && "TODO: platform_stroke_line");
}

void platform_panic(const char *file_path, i32 line, const char *message)
{
    assert(0 && "TODO: platform_panic");
}

void platform_log(const char *message)
{
    assert(0 && "TODO: platform_log");
}

View Diff

2a3
>     assert(0 && "TODO: platform_fill_rect");
6a8
>     assert(0 && "TODO: platform_stroke_rect");
10a13
>     assert(0 && "TODO: platform_fill_text");
14a18
>     assert(0 && "TODO: platform_stroke_line");
18a23
>     assert(0 && "TODO: platform_panic");
22a28
>     assert(0 && "TODO: platform_log");

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 99 remaining solutions by signing in and submitting your own entry
#100 Adriano / @AdrianoAla - Score: 83 - 07/28/25 @ 12:35
qa0wyejo<BS><Tab><BS>    assert(0 && "TODO: <fd-6b>pA")<fd-6b>A:<fd-6b>A<BS>;<fd-6b>qjjVG:g/void/exe "normal @a"<CR>:q<CR>:wq<CR>

0 comments


Created by: @Vivida1

100 active golfers, 256 entries

Leaderboard (lowest score wins):
41
#1 - Peppa Pig / @PeppaPigSg

10/01/2024 at 02:44PM

41
#2 - Gustav Kristensen / @gustavkrist

10/01/2024 at 04:34PM

41
#3 - JMTed / @JMTed

10/04/2024 at 06:17PM

41
#4 - Danilo J. S. Bellini 🥊🇧🇷 / @danilobellini

10/06/2024 at 06:02AM

41
#5 - Jean George / @JeanGeo20504212

10/12/2024 at 10:32PM

41
#6 - John Braxler / @braxler

10/16/2024 at 07:59PM

41
#7 - rasputins / @rasputins

10/18/2024 at 09:22PM

41
#8 - aaay-aaay / @aaay-aaay

10/25/2024 at 06:44PM

41
#9 - Melih Aktop / @mlhktp

11/02/2024 at 12:16AM

41
#10 - Realia / @realia

12/13/2024 at 02:09AM

41
#11 - Pstock7 / @Pstock7

01/27/2025 at 05:43AM

41
#12 - Chino / @MarcoMeinardi

02/18/2025 at 05:35PM

41
#13 - edgar1437 / @edgar1437

03/10/2025 at 11:48AM

41
#14 - Abdelrahman Madkour / @a3madkour

03/31/2025 at 12:32PM

41
#15 - Ondřej Lysoněk / @olysonek

04/13/2025 at 09:52AM

41
#16 - Leon Kacowicz / @leonkacowicz

05/05/2025 at 01:24PM

41
#17 - Damien Baldy / @dbaldy

05/19/2025 at 02:52PM

41
#18 - winter-loo / @winter-loo

05/30/2025 at 03:23AM

41
#19 - Sébastien Oulevey / @sebastienoulevey

07/13/2025 at 02:03PM

41
#20 - Jorge Dias / @marori

10/11/2025 at 03:14AM

41
#21 - yaskur0 / @yaskur0

11/11/2025 at 02:50AM

41
#22 - Aly Thobani / @alythobani

11/24/2025 at 05:39AM

41
#23 - Gavin / @GavinKoeng

12/03/2025 at 12:11PM

41
#24 - lassion / @mutilator630

01/15/2026 at 10:27PM

42
#25 - jimmymills / @jimmymills

05/15/2025 at 07:51PM

42
#26 - Ozan / @OzanY4

07/23/2025 at 03:28PM

42
#27 - Benjamin / @b2vqbw

07/29/2025 at 07:21AM

42
#28 - danieltanto / @danieltanto

08/20/2025 at 01:37AM

42
#29 - sealldev / @sealldeveloper

08/20/2025 at 01:38AM

42
#30 - petr-kx / @petr-kx

09/23/2025 at 03:49PM