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):
31
#241 - Adam Šintál / @sintaladam

01/21/2026 at 10:02PM

32
#242 - Jack / @bytesandwich

03/19/2025 at 08:01PM

32
#243 - estoneman / @estoneman

04/23/2025 at 03:06AM

32
#244 - Ultragamer135 / @Ultragamer135

05/08/2025 at 02:52AM

32
#245 - Jesse / @Solopie

08/11/2025 at 03:43AM

32
#246 - Massimo Pavoni / @massimopavoni

04/07/2026 at 11:25PM

32
#247 - yunglatkes / @yunglatkes

07/14/2026 at 06:30AM

33
#248 - Gary Nguyen / @Kasaract

05/09/2025 at 08:01PM

33
#249 - Michael Lodispoto / @MikeLodispoto

05/13/2025 at 01:04AM

33
#250 - Blake Raymond / @bit-ray

09/01/2025 at 02:19AM

33
#251 - se / @sairutra

11/19/2025 at 12:54PM

33
#252 - Nuckell / @Nuckell

12/12/2025 at 04:39AM

33
#253 - Frederik F / @FrederikFrederiksenMancofi

12/29/2025 at 07:22PM

33
#254 - cjmHK / @cjmHK

03/26/2026 at 03:29AM

33
#255 - Nıklas Rıeken / @ttnick

04/09/2026 at 10:41AM

34
#256 - LayanJethwa / @LayanJethwa

12/18/2024 at 07:49AM

34
#257 - Thomas Hargreaves / @waingro

01/29/2025 at 07:36AM

34
#258 - Jan M Montalvo / @JanMichaelSE

04/02/2025 at 12:35AM

34
#259 - Ming / @x51ming

04/20/2025 at 05:08PM

34
#260 - SimonJorgensenMancofi / @SimonJorgensenMancofi

12/12/2025 at 09:11AM

34
#261 - Sean Morris / @SeanJMorris

02/02/2026 at 03:51PM

35
#262 - Guillaume Seren / @guillaumeseren

12/06/2024 at 02:58PM

35
#263 - IroncladDev / @IroncladDev

01/02/2025 at 02:51PM

35
#264 - Ravi S Sinha / @ambidextrousTx

01/14/2025 at 05:19PM

35
#265 - gFffdhg6UX3ceYvTsLms / @gFffdhg6UX3ceYvTsLms

01/16/2025 at 02:45PM

35
#266 - Max Weidemann / @Max-Weidemann

02/21/2025 at 02:13PM

35
#267 - pufffin / @pufffin

03/26/2025 at 02:36PM

35
#268 - Theo Lincke / @lincketheo

04/08/2025 at 12:27AM

35
#269 - Jim-Alexander Berger Seterdahl / @JimAlexBerger

06/24/2025 at 08:12AM

36
#270 - Darren Wang / @changexd

01/14/2025 at 07:50AM