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
#151 - rirze / @SourabhWasTaken

12/24/2019 at 08:45PM

27
#152 - jonlee / @jonlee48400052

12/27/2019 at 01:11AM

27
#153 - Marty Boren / @beanmaximalist

01/07/2020 at 06:16PM

27
#154 - mowglian / @mowglian

01/09/2020 at 04:02PM

27
#155 - Pawel Marciniak / @pave_m

01/18/2020 at 08:16AM

27
#156 - Rune Warhuus / @DinkDonkNorway

01/21/2020 at 01:53PM

27
#157 - Michael Meixner / @meixner62

01/22/2020 at 12:18PM

27
#158 - おねさわ / @yama846

02/01/2020 at 02:41PM

27
#159 - Jean-Francois Parent / @hacker_pyrat

02/02/2020 at 01:49AM

27
#160 - Kyle X. Clark / @KyXr_Clark

02/08/2020 at 11:20PM

27
#161 - jrddp / @jrddp0

02/13/2020 at 05:46PM

27
#162 - Alexander Bessonov / @nonsleepr

03/02/2020 at 02:33PM

27
#163 - Ryan Nevius / @ryannevius

03/17/2020 at 12:31PM

27
#164 - Seve / @Seve_py

04/09/2020 at 12:21PM

27
#165 - edvrds / @edvrds

04/12/2020 at 05:36PM

27
#166 - Christophe Robillard / @krichtof

05/05/2020 at 08:22PM

27
#167 - iBhagwan / @iiBhagwan

05/11/2020 at 05:47AM

27
#168 - Sai Hemanth / @saihemanth9019

05/11/2020 at 12:50PM

27
#169 - Pawel Wenda / @pwlwnd

05/13/2020 at 10:42AM

27
#170 - 于吉星 / @fishermryn

05/23/2020 at 06:12AM

27
#171 - Sven Kõiv / @KoivSven

05/23/2020 at 05:56PM

27
#172 - Vim Golfer / @vimgolfing

05/24/2020 at 02:40PM

27
#173 - Bob / @Bob37174065

06/01/2020 at 03:12PM

27
#174 - vimgolf-sensei / @VimgolfS

06/03/2020 at 01:55PM

27
#175 - otfsenter / @otfsenter

06/03/2020 at 04:14PM

27
#176 - JLObject / @powful_panda

07/01/2020 at 08:12PM

27
#177 - Mitchell Horning / @HorningMitchell

07/04/2020 at 02:06PM

27
#178 - L Z / @unidevel

07/06/2020 at 02:53PM

27
#179 - smlbrngr / @smlbrngr

07/13/2020 at 04:12PM

27
#180 - Dmitry Branitskiy / @b1azer

07/15/2020 at 05:52PM