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):
31
#301 - Minyi Zhong / @minyi_zhong

11/22/2019 at 09:35AM

31
#302 - adamtobias / @adamtobias

12/26/2019 at 09:12PM

31
#303 - Bashar Jaan Khan / @basharjaankhan

01/07/2020 at 06:05PM

31
#304 - Nguyen Van Bac / @taybacvt

01/18/2020 at 02:36PM

31
#305 - Mikael Brassman / @spoike

03/03/2020 at 04:16PM

31
#306 - Marco / @Marco24456514

04/02/2020 at 01:25PM

31
#307 - Valdimar / @genkobar

05/28/2020 at 10:03PM

31
#308 - Ben Simmons / @Simmons_Ben

06/04/2020 at 03:37PM

31
#309 - alrito / @alrito6

09/16/2020 at 07:37AM

31
#310 - Vinay Sridhar / @kewllip

04/29/2023 at 04:14PM

31
#311 - Olivier Bégassat / @zk_evm

06/11/2023 at 03:44PM

32
#312 - Josefina Alconada / @jochiAlconada

10/03/2019 at 10:27AM

32
#313 - Pieter Joost / @pjvds

10/09/2019 at 11:30AM

32
#314 - Simon Wilkinson / @simondwilkinson

10/17/2019 at 10:21PM

32
#315 - MasterFox / @MaestroZorro_

10/22/2019 at 12:50PM

32
#316 - Scott Taylor / @scott11X8

10/25/2019 at 12:34AM

32
#317 - 🖖 / @Vvkmnn

11/03/2019 at 10:19AM

32
#318 - alibabadienstaccount / @alibabadiensta1

11/05/2019 at 12:24PM

32
#319 - Chris Covert / @covertcj

11/07/2019 at 02:54PM

32
#320 - Nicolas / @martinni39

11/08/2019 at 10:26PM

32
#321 - pysnow530 / @pysnow530

11/18/2019 at 10:57AM

32
#322 - Mike Deakin / @Mick_Deak

11/20/2019 at 01:47PM

32
#323 - Moye_ / @moye_

01/06/2020 at 10:00PM

32
#324 - John Kevin Estrella / @kevsestrella

01/07/2020 at 02:51PM

32
#325 - Jerry Zhu / @xpost2000games

01/21/2020 at 03:37AM

32
#326 - Falafel Palapel / @falafelpalapel

02/12/2020 at 05:56PM

32
#327 - Vinícius Hoyer / @viniciushoyer

03/19/2020 at 01:09PM

32
#328 - Manish Baghel / @ManishBaghelz

05/14/2020 at 10:44AM

32
#329 - Di Liu / @Skyerliu

06/20/2020 at 06:31PM

32
#330 - Daniel Habib / @danielhvs

07/21/2020 at 02:46AM