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):
32
#331 - Vinay Sharma / @VinaySh63956554

08/08/2020 at 06:58PM

32
#332 - Demian Martinez / @demianuco

11/02/2020 at 12:41AM

32
#333 - xiaoao1024 / @xiaoao1024

01/05/2024 at 11:34AM

33
#334 - Walker Boh / @walker_boh

09/16/2019 at 10:37AM

33
#335 - Jason Birchall / @jsonBirchall

09/16/2019 at 05:21PM

33
#336 - Harold / @__hrld

09/23/2019 at 08:58AM

33
#337 - Elton Kamami / @pixel_grid

09/27/2019 at 08:49PM

33
#338 - Sam O'Malley / @Samuel_OMalley

10/11/2019 at 02:52PM

33
#339 - Jörg Meyer / @JoergMy

10/19/2019 at 07:09PM

33
#340 - Lie Ryan / @lieryan

10/21/2019 at 10:32AM

33
#341 - James Houghton / @jamesthoughton

11/10/2019 at 10:52PM

33
#342 - zlogan / @zlogan2003

11/24/2019 at 06:00PM

33
#343 - Oleg / @colega

01/04/2020 at 01:00AM

33
#344 - Sebastien Nicoud / @sebnukem

01/04/2020 at 11:23PM

33
#345 - John / @Guyer250

01/20/2020 at 04:50PM

33
#346 - RockerZZY / @rocker_zzy

05/31/2020 at 03:38AM

33
#347 - vimspam / @vimspam

11/09/2020 at 05:36AM

33
#348 - :wq / @write_quit_22

05/22/2021 at 07:13PM

34
#349 - Pogues 123 / @123Pogues

09/16/2019 at 08:23PM

34
#350 - Urbanovics Péter / @UrbanovicsP

09/17/2019 at 09:05AM

34
#351 - Jonathan Lozinski / @jlozinski

09/18/2019 at 12:10PM

34
#352 - Phrasendroschke / @phrasendroschke

09/18/2019 at 01:32PM

34
#353 - Aioriya / @AioriyaDonk

09/22/2019 at 11:15PM

34
#354 - ylv / @ylv_io

09/26/2019 at 10:08PM

34
#355 - Alexander v Trijffel / @avtnl

10/10/2019 at 10:08PM

34
#356 - leo / @leo28356948

10/17/2019 at 04:12AM

34
#357 - roemermeier / @roemermeier

10/19/2019 at 08:12AM

34
#358 - 0xNinja / @0x_Ninja

10/25/2019 at 08:16AM

34
#359 - David / @dalbertom

12/01/2019 at 07:45PM

34
#360 - Jason Neylon / @jasonneylon

12/14/2019 at 12:15PM