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):
27
#181 - Hugh / @haquaman

11/30/2020 at 10:23PM

27
#182 - Dax / @zacoxi

12/11/2020 at 05:37AM

27
#183 - Jon Krause / @jkrause314

12/15/2020 at 02:03AM

27
#184 - Andreas Siegrist / @andreaszwei

01/21/2021 at 07:18PM

27
#185 - Michel Viktor / @tomkpz

08/11/2021 at 02:16AM

27
#186 - Scott Berger / @scottberger

09/24/2021 at 07:09PM

27
#187 - Max / @Max17868626

11/16/2021 at 03:09AM

27
#188 - russellzhaomao / @russellzhaomao

05/28/2022 at 10:32AM

28
#189 - Jan Bundesmann / @janbundesmann

09/16/2019 at 10:54AM

28
#190 - theBecwar / @thebecwar

09/16/2019 at 11:41AM

28
#191 - Adam Hartz / @awareofnow

09/18/2019 at 01:16AM

28
#192 - Bennett / @bennettbackward

09/19/2019 at 03:20AM

28
#193 - Daniel Beck / @daniel_beck_il

09/19/2019 at 01:37PM

28
#194 - Russell Lescai / @RussLescai

09/22/2019 at 11:50AM

28
#195 - lucca augusto / @LuccaAugusto6

09/22/2019 at 10:10PM

28
#196 - lxgreen / @lxgreen3

09/29/2019 at 10:11PM

28
#197 - Howl / @Howlxx55

10/06/2019 at 03:21PM

28
#198 - TechBurgers / @TechBurgers

10/06/2019 at 06:11PM

28
#199 - ErQ325 / @EQ325

10/13/2019 at 07:23AM

28
#200 - Константин / @pillar_vandyke

10/17/2019 at 05:32AM

28
#201 - Scott Rosenquist / @scottrosenquist

10/18/2019 at 04:08AM

28
#202 - Nick Yeow / @nickyeow

10/19/2019 at 01:25PM

28
#203 - TimMcGuire / @mcguire

10/24/2019 at 01:34AM

28
#204 - trafficone / @trafficone

11/02/2019 at 05:00AM

28
#205 - mogitate / @mutemeat

11/14/2019 at 03:51PM

28
#206 - fewfold / @fewfold

11/21/2019 at 05:07AM

28
#207 - tPenguinLTG / @tpenguinltg

11/30/2019 at 06:20AM

28
#208 - vim_golfer_1 / @vimgolfer12

12/05/2019 at 09:34AM

28
#209 - Thomas Churchman / @Beskhue

12/14/2019 at 12:29PM

28
#210 - 小山内まい / @osanamity

12/29/2019 at 08:20AM