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

472 active golfers, 1918 entries

Leaderboard (lowest score wins):
26
#61 - BnnGolfer / @BnnGolfer

03/21/2020 at 12:54AM

26
#62 - r4d1um / @r4d1um

03/21/2020 at 04:52PM

26
#63 - Michael Brauweiler / @m_brauweiler

03/22/2020 at 05:28PM

26
#64 - Toby Hawkins / @Toby_Hawkins

03/24/2020 at 06:38PM

26
#65 - mury liang / @muryliang

04/07/2020 at 02:06PM

26
#66 - Moatvald / @moatvald

04/13/2020 at 10:59AM

26
#67 - Andreas Buhr / @andreas_buhr

05/21/2020 at 05:49PM

26
#68 - Romain / @djizeuscoco

06/10/2020 at 05:02PM

26
#69 - mocihan / @mocihan

06/29/2020 at 07:05AM

26
#70 - Андрей / @appomsk

08/20/2020 at 09:58AM

26
#71 - Piotr Kaznowski / @kaznowski

09/18/2020 at 07:05PM

26
#72 - Leo Winters / @LeoPWinters

10/19/2020 at 06:02PM

26
#73 - Neverlandrunner / @neverlandrunner

12/06/2020 at 06:47AM

26
#74 - nd183 / @nd1832

12/09/2020 at 03:48PM

26
#75 - pherapont / @pherapont1

01/21/2021 at 03:26AM

26
#76 - tylertucker202 / @tylertucker202

01/27/2021 at 02:50AM

26
#77 - Peter Pandorum / @PeterPandorum

08/10/2021 at 08:43AM

27
#78 - Andrey / @andreyrmg

09/16/2019 at 10:51AM

27
#79 - Oskar Fridell / @rax0m

09/16/2019 at 10:58AM

27
#80 - EL KESRI Othmane / @KesriOthmane

09/16/2019 at 01:02PM

27
#81 - Douglas Massolari / @dmassolari

09/16/2019 at 02:18PM

27
#82 - 𝚃𝚒𝚝𝚘𝚞𝚊𝚗 𝚃𝚎𝚢𝚜𝚜𝚒𝚎𝚛 / @TitouanT_

09/16/2019 at 03:40PM

27
#83 - Dan / @dstein64

09/16/2019 at 06:51PM

27
#84 - Alexander L. / @Lexol4s

09/16/2019 at 09:00PM

27
#85 - Gasol Wu / @gasolwu

09/17/2019 at 02:55AM

27
#86 - Cassandra / @kascein

09/17/2019 at 07:22AM

27
#87 - garry quested / @GQuested

09/17/2019 at 08:52AM

27
#88 - Smylers / @Smylers2

09/17/2019 at 01:37PM

27
#89 - nefforr / @yayamip

09/17/2019 at 02:27PM

27
#90 - Tinko Minko / @tandikula

09/17/2019 at 08:19PM