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

458 active golfers, 1851 entries

Leaderboard (lowest score wins):
45
#421 - Christophe Kafrouni / @KafrouniChris

04/30/2020 at 04:42PM

46
#422 - sspan / @sspantz

09/23/2019 at 02:28AM

46
#423 - John Poon / @shinvalor

12/29/2019 at 08:43PM

46
#424 - David Cherednik / @david_cherednik

05/22/2020 at 06:56PM

46
#425 - Andreas Burg / @der_abu

10/10/2020 at 12:41PM

47
#426 - Michael Haddad / @mrhaddad

09/16/2019 at 03:32PM

47
#427 - Thomas Edlich / @grumpybavarian

09/27/2019 at 08:56PM

47
#428 - Jonathan Yong / @yongrenjie

11/28/2019 at 05:34PM

47
#429 - Richard Pape / @Drippydik187

04/05/2020 at 04:16PM

48
#430 - Josep / @Joseptec

12/23/2019 at 11:49AM

49
#431 - Bruno Machado / @brunosmmachado

10/20/2019 at 11:19AM

49
#432 - Daniel Johnston / @Dan8720Dj

02/03/2020 at 05:51PM

49
#433 - seul / @seul15987381

04/21/2020 at 11:55AM

50
#434 - Soptik / @Soptik3

09/24/2019 at 09:02PM

51
#435 - Benjamin Pelletier / @benjipelletier

09/24/2019 at 01:33PM

51
#436 - moh ayaya / @AyayaMoh

10/26/2020 at 09:29PM

52
#437 - abhijeet patil / @abhijeetptl5

09/02/2020 at 07:09PM

53
#438 - ahahsod / @ahahsod

10/07/2019 at 09:09AM

53
#439 - Aaron / @_Lordofthevoid_

11/19/2019 at 11:22AM

53
#440 - Christ / @Christ46234422

09/06/2020 at 01:39AM

54
#441 - Ben Lowbridge / @kylar102

10/12/2019 at 12:05AM

54
#442 - Antonio Bayonas / @BayonasAntonio

10/17/2019 at 05:34PM

54
#443 - dahara / @kuma_moooon

10/21/2019 at 10:13AM

54
#444 - Scott Kidder / @scottkidder

05/24/2020 at 02:22AM

55
#445 - masatoyoshioka / @Yoshioka0627

09/27/2019 at 11:58AM

55
#446 - Andrei Popescu / @AndreiTheory

12/09/2019 at 01:09PM

56
#447 - Anil Narayan / @AnilNarayan2013

07/23/2020 at 03:23AM

56
#448 - Kaustubh Murumkar / @k_austub_h

08/29/2020 at 05:01PM

58
#449 - Rajasegar Chandran / @rajasegar_c

09/25/2019 at 05:18AM

60
#450 - Sverre Rakkenes / @_Snap_

10/04/2019 at 11:21AM