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 5d7f565deac0df000cfc2154

Line under headers

Put a line under each header, and remove the other markdown formatting.

Start file
## Headers

## To

## Underline
End file
Headers
-------

Are
---

Underlined
----------

View Diff

1c1,2
< ## Headers
---
> Headers
> -------
3c4,5
< ## To
---
> Are
> ---
5c7,8
< ## Underline
---
> Underlined
> ----------

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 506 remaining solutions by signing in and submitting your own entry
#507 Pavlo Hadzheha / @PHadzheha - Score: 133 - 02/19/21 @ 10:13
:<BS>?<BS>kjjwcwAre<Esc>kkjjjjAd<Esc>:%s/\(##\s\)\(.\+\)/\=submatch(2) . "\r" . rea<BS>peat(submatch(2)<C-Left><C-Left><C-Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Left>str_<BS><BS><BS><BS>'-', strchars*<BS>(<Right><C-Right>))/<CR>:wq<CR>

0 comments


Created by: @rax0m

507 active golfers, 2059 entries

Leaderboard (lowest score wins):
29
#271 - John Doe / @JohnDoe75830353

12/22/2020 at 01:58PM

29
#272 - Ray Dennis / @raysden

12/23/2020 at 10:22PM

29
#273 - 蔡徐坤真是爱吃屎 / @Hashub7

01/20/2021 at 01:57PM

29
#274 - James / @Dronak

11/17/2022 at 09:30PM

30
#275 - A / @Tower_1980

09/21/2019 at 01:56PM

30
#276 - Jonathan Eidsness / @jonathaneidsnes

09/22/2019 at 01:04PM

30
#277 - majuscule / @majuscule13

09/24/2019 at 09:00PM

30
#278 - brypto / @hiimbenjy

09/30/2019 at 09:38PM

30
#279 - Ivo Blöchliger / @aigledesalpes

10/02/2019 at 07:28PM

30
#280 - Jonathan Medwig / @jmedwig

10/07/2019 at 07:13PM

30
#281 - fritz_carraldo / @fritz_carraldo

11/08/2019 at 04:30AM

30
#282 - Dan Kilman / @dan_kilman

12/18/2019 at 04:06PM

30
#283 - Karnival K / @K4rnival

01/15/2020 at 06:01PM

30
#284 - BESSENG A IREH Guy / @guybesseng

01/17/2020 at 09:29AM

30
#285 - DosLin / @hidoslin

01/21/2020 at 02:44AM

30
#286 - Anthony BERNARD / @TweetTontony

02/17/2020 at 07:53PM

30
#287 - Sean Dewar / @seandewar

03/13/2020 at 03:20PM

30
#288 - Sviatoslav / @Sviatos84212895

03/23/2020 at 11:35AM

30
#289 - Lee Kian Tat Ken / @thekingtat

04/04/2020 at 06:29AM

30
#290 - betmaster / @betmstr

06/04/2020 at 11:28AM

30
#291 - nihilistCookie / @NihilistCookie

06/14/2020 at 05:30PM

30
#292 - InnocentoRicardo / @OskyldigaRille

09/30/2021 at 08:32PM

31
#293 - Gammelin Guillaume / @ggammelin

09/16/2019 at 01:25PM

31
#294 - J̻̕ͅo̠̻̘h̼̖n̙̩̝͕ D̹̗̗͝oe̶̱̥͙ / @JohnJDoe2

09/17/2019 at 09:14AM

31
#295 - Khamnhoui-Boulom / @k_nhoui

09/24/2019 at 04:08AM

31
#296 - sooqua / @sooqua

10/16/2019 at 08:14AM

31
#297 - Alex Schultz / @Pumpkinhead002

10/16/2019 at 02:49PM

31
#298 - Alex Emelianov / @AlexEmelianov3

10/20/2019 at 01:34AM

31
#299 - vimgolfer / @vimgolfer9

11/03/2019 at 01:11PM

31
#300 - LinusPoutine / @LinusPoutine

11/13/2019 at 05:00PM