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):
27
#181 - Виталий Макаров / @avada_keda_bra

07/16/2020 at 10:09PM

27
#182 - Jason / @jason_eveleth

07/23/2020 at 09:24AM

27
#183 - Norman Liu / @normanwliu

07/25/2020 at 11:52PM

27
#184 - Luc Kien Hang / @luckienhang

09/04/2020 at 02:07AM

27
#185 - akouryy / @akouryy1

09/07/2020 at 05:04AM

27
#186 - GenericHardwareGamer / @GnrikHrdwrGamer

09/07/2020 at 12:20PM

27
#187 - AAbraxas / @AAbraxas1

10/13/2020 at 07:51PM

27
#188 - Leland Paul Kusmer / @lelandpaul

10/21/2020 at 02:15PM

27
#189 - wilsonept / @wilsonept1

10/26/2020 at 10:47PM

27
#190 - quemeraisc / @quemeraisc

11/05/2020 at 11:06AM

27
#191 - Miłosz Łakomy / @foobar01123

11/11/2020 at 02:20PM

27
#192 - MrRubiksSC / @RubiksSc

11/27/2020 at 03:09AM

27
#193 - Hugh / @haquaman

11/30/2020 at 10:23PM

27
#194 - Dax / @zacoxi

12/11/2020 at 05:37AM

27
#195 - Jon Krause / @jkrause314

12/15/2020 at 02:03AM

27
#196 - Andreas Siegrist / @andreaszwei

01/21/2021 at 07:18PM

27
#197 - Michel Viktor / @tomkpz

08/11/2021 at 02:16AM

27
#198 - Scott Berger / @scottberger

09/24/2021 at 07:09PM

27
#199 - Max / @Max17868626

11/16/2021 at 03:09AM

27
#200 - russellzhaomao / @russellzhaomao

05/28/2022 at 10:32AM

27
#201 - 7733865@qq.com / @tjxwg

06/14/2023 at 02:27AM

27
#202 - asirago / @asiragoo

12/13/2023 at 06:49AM

27
#203 - Anaritus / @Anaritus

02/25/2024 at 01:10PM

27
#204 - Nathan Priego / @nspriego

02/23/2025 at 11:16PM

28
#205 - Jan Bundesmann / @janbundesmann

09/16/2019 at 10:54AM

28
#206 - theBecwar / @thebecwar

09/16/2019 at 11:41AM

28
#207 - Adam Hartz / @awareofnow

09/18/2019 at 01:16AM

28
#208 - Bennett / @bennettbackward

09/19/2019 at 03:20AM

28
#209 - Daniel Beck / @daniel_beck_il

09/19/2019 at 01:37PM

28
#210 - Russell Lescai / @RussLescai

09/22/2019 at 11:50AM