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

YAML to dotenv

Convert this YAML config file to a .env file.

Start file
vimgolf:
  logging:
    level: INFO
app:
  postgres:
    host: !ENV {POSTGRES_HOST}
    port: !ENV {POSTGRES_PORT}
  pulsar:
    host: !ENV ${PULSAR_HOST}
    port: !ENV ${PULSAR_PORT}
    namespace: vimgolf
    topic: !ENV ${PULSAR_TOPIC}
End file
POSTGRES_HOST=
POSTGRES_PORT=
PULSAR_HOST=
PULSAR_PORT=
PULSAR_TOPIC=

View Diff

1,12c1,5
< vimgolf:
<   logging:
<     level: INFO
< app:
<   postgres:
<     host: !ENV {POSTGRES_HOST}
<     port: !ENV {POSTGRES_PORT}
<   pulsar:
<     host: !ENV ${PULSAR_HOST}
<     port: !ENV ${PULSAR_PORT}
<     namespace: vimgolf
<     topic: !ENV ${PULSAR_TOPIC}
---
> POSTGRES_HOST=
> POSTGRES_PORT=
> PULSAR_HOST=
> PULSAR_PORT=
> PULSAR_TOPIC=

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 339 remaining solutions by signing in and submitting your own entry
#340 M L / @Mechse - Score: 193 - 09/05/25 @ 07:54
:%s/.*!ENV {<BS>}<BS>{}<Left>\?\$<0xc2><0xaf><BS>\?{<Right><BS>{<BS>\`?<BS><BS>?()<Left><Right>}<Left><Left>[A-Z_]*\<Right><Right>.*<BS><BS><Left><Left><Right><BS><BS><BS><Left><Left><Left><Right><Right><Right>)<Right>.<BS>*<BS><Left><Left><Left><BS><Right><Right><Right><BS><BS><BS><BS><BS><BS><BS><BS>()<Left>[]<Left>A-<BS>-Z<Right><Right><Left><Left>_<Right>*\<Right>}.*\?/<BS><BS><BS><BS><BS><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>\<Right><Right><Right><Right><Right><Right><Right><Right><Right>?<BS><Right><Right>.*\?<BS><BS><BS><BS>/\1=/g<CR>_:%s/<0xc2><0xb0><BS>^[<0xc2><0xb0><BS>^A-Z].*\n//g<CR>:wq<CR>

0 comments


#341 skewcy-bot / @skewcy-bot - Score: 193 - 08/18/26 @ 15:25
:%s/.*!ENV {<BS>}<BS>{}<Left>\?\$<0xc2><0xaf><BS>\?{<Right><BS>{<BS>\`?<BS><BS>?()<Left><Right>}<Left><Left>[A-Z_]*\<Right><Right>.*<BS><BS><Left><Left><Right><BS><BS><BS><Left><Left><Left><Right><Right><Right>)<Right>.<BS>*<BS><Left><Left><Left><BS><Right><Right><Right><BS><BS><BS><BS><BS><BS><BS><BS>()<Left>[]<Left>A-<BS>-Z<Right><Right><Left><Left>_<Right>*\<Right>}.*\?/<BS><BS><BS><BS><BS><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>\<Right><Right><Right><Right><Right><Right><Right><Right><Right>?<BS><Right><Right>.*\?<BS><BS><BS><BS>/\1=/g<CR>_:%s/<0xc2><0xb0><BS>^[<0xc2><0xb0><BS>^A-Z].*\n//g<CR>:wq<CR>

0 comments


Created by: @iantalks

341 active golfers, 1633 entries

Leaderboard (lowest score wins):
21
#121 - ymte / @ymte

03/23/2025 at 02:29PM

21
#122 - Maxime Delhaye / @friphazeph

03/26/2025 at 05:28PM

21
#123 - phaym / @phaym

05/15/2025 at 01:26PM

21
#124 - Evgenii Kazakov / @evgenstf

10/23/2025 at 05:18PM

21
#125 - Quadrate / @quadratech188

01/17/2026 at 02:36PM

21
#126 - Alastair / @alastairsounds

04/08/2026 at 11:12PM

21
#127 - Jess Price / @JRPrice5

04/27/2026 at 02:48PM

22
#128 - Aliaksandr / @Admiralissimus

12/13/2024 at 09:05PM

22
#129 - myu-innocence / @myu-innocence

12/19/2024 at 03:09PM

22
#130 - SD / @SD24757629

12/25/2024 at 03:53PM

22
#131 - Guilherme / @gsionek

01/02/2025 at 05:55PM

22
#132 - ashfinal / @ashfinal

01/16/2025 at 05:33AM

22
#133 - Daisuke Shimada / @cimadai

02/19/2025 at 11:40PM

22
#134 - SpiridonDumitru / @SpiridonDumitru

03/14/2025 at 12:50PM

22
#135 - Silver / @paradisehex

05/09/2025 at 02:05AM

22
#136 - Lars van Dartel / @LarsvanDartel

05/10/2025 at 10:18AM

22
#137 - Stoyan Dimov / @stoyandimov

05/15/2025 at 09:43AM

22
#138 - Gibson Starkweather / @boaf

05/24/2025 at 09:40PM

22
#139 - NoahVickerson / @NoahVickerson

05/25/2025 at 04:19AM

22
#140 - Martin Knoller Stocker / @linuxswords

05/29/2025 at 04:32PM

22
#141 - Karan / @KaranVaity

06/07/2025 at 11:35AM

22
#142 - MegabajteN / @megabajten

08/14/2025 at 03:42PM

22
#143 - constap / @constap

09/21/2025 at 03:24AM

22
#144 - Matthew Cooper / @mkcmkc

12/17/2025 at 12:28AM

22
#145 - lassion / @mutilator630

01/13/2026 at 10:20PM

22
#146 - Matthew Berthoud / @Matthew-Berthoud

02/08/2026 at 12:36AM

22
#147 - Ashwin Kumar / @MrHaikuSwan

03/15/2026 at 06:28AM

22
#148 - MartinDanesh / @MartinDanesh

03/19/2026 at 09:11PM

22
#149 - UdonSari / @udonsari

06/19/2026 at 12:09AM

22
#150 - Atharva Mahajan / @atharvam4

07/21/2026 at 01:34PM