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 591903ff3060ed0b32000007

Adam's challenge

Change both normal to bold and 4 by 2. Adam Wathan challenge this on twitter . He did it in 11 keystrokes on Sublime.

Start file
<div>
    <span class="text-base text-dark wt-normal">
        @icon('line-graph', 'icon-sm text-dark-faint m-r-4') ${{ number_format($product->totalRevenue() / 100) }}
    </span>
    <span class="text-base text-dark wt-normal">
        @icon('users', 'icon-sm text-dark-faint m-r-4') {{ $product->totalPurchases() }}
    </span>
</div>
End file
<div>
    <span class="text-base text-dark wt-bold">
        @icon('line-graph', 'icon-sm text-dark-faint m-r-2') ${{ number_format($product->totalRevenue() / 100) }}
    </span>
    <span class="text-base text-dark wt-bold">
        @icon('users', 'icon-sm text-dark-faint m-r-2') {{ $product->totalPurchases() }}
    </span>
</div>

View Diff

2,3c2,3
<     <span class="text-base text-dark wt-normal">
<         @icon('line-graph', 'icon-sm text-dark-faint m-r-4') ${{ number_format($product->totalRevenue() / 100) }}
---
>     <span class="text-base text-dark wt-bold">
>         @icon('line-graph', 'icon-sm text-dark-faint m-r-2') ${{ number_format($product->totalRevenue() / 100) }}
5,6c5,6
<     <span class="text-base text-dark wt-normal">
<         @icon('users', 'icon-sm text-dark-faint m-r-4') {{ $product->totalPurchases() }}
---
>     <span class="text-base text-dark wt-bold">
>         @icon('users', 'icon-sm text-dark-faint m-r-2') {{ $product->totalPurchases() }}

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 90 remaining solutions by signing in and submitting your own entry
#91 Will Gunther / WillGunther - Score: 23 - 06/11/17 @ 19:01
qq/no<CR>cwbold<Esc>/4<CR>r2q@qZZ

0 comments

#92 Mayank Suman / mayank_suman - Score: 23 - 06/24/17 @ 18:04
/no<CR>cwbold<Esc>n.:%s/4/2<CR>ZZ

0 comments

#93 Andrew Sz / RoboAndy - Score: 23 - 06/29/17 @ 09:32
/no<CR>cwbold<Esc>n./4<CR>r2n.:x<CR>

0 comments

#94 J / J02108006 - Score: 23 - 07/02/17 @ 15:13
qq/no<CR>cwbold<Esc>/4<CR>r2q@qZZ

0 comments

#95 Jacob Buete / JBuete - Score: 23 - 07/07/17 @ 14:05
qq/no<CR>cwbold<Esc>jf4r2q@qZZ

0 comments

#96 黒澤亮二 / rjkuro - Score: 23 - 07/22/17 @ 12:11
/no<CR>cwbold<Esc>n./4<CR><C-A><C-A>n<C-A><C-A>ZZ

0 comments

#97 Edouard Piette / EdPiette - Score: 24 - 05/19/17 @ 13:00
/no<CR>ciwbold<Esc>n.?4<CR><C-A><C-A>n<C-A><C-A>ZZ

0 comments

#98 David Gustavsson / mrGustaphe - Score: 24 - 06/08/17 @ 06:25
qq/no<CR>cwbold<Esc>jf4s2<Esc>q@qZZ

0 comments

#99 Benoit Bou / 3enoit3 - Score: 24 - 06/17/17 @ 10:25
Gqq?4<CR>r2kFnciwbold<Esc>q@qZZ

0 comments

#100 Ryan Coopersmith / RyanCoopersmit1 - Score: 25 - 06/03/17 @ 15:50
jfm*cwbold<Esc>n.jf4r23jF4.ZZ

0 comments

#101 Avian Y / y_avian - Score: 25 - 06/27/17 @ 15:26
/no<CR>ciwbold<Esc>n.jf4r23k;.ZZ

0 comments

#102 python-tweepy / python_tweepy - Score: 26 - 05/16/17 @ 03:55
:%s/normal/bold<CR>:%s/4/2<CR>ZZ

0 comments

#103 Alex Hallam / alexhallam6_28 - Score: 26 - 06/04/17 @ 05:22
:%s/normal/bold<CR>:%s/4/2<CR>ZZ

0 comments

#104 Kieron Browne / KieronBrowne1 - Score: 26 - 06/30/17 @ 09:10
:%s/normal/bold<CR>:%s/4/2<CR>ZZ

0 comments

#105 Sergio Semedi / SergioSemedi - Score: 26 - 07/16/17 @ 13:31
:%s/normal/bold<CR>/4<CR>r2nr2ZZ

0 comments

#106 Gurukandhamoorthi / Gurukandhamoor1 - Score: 27 - 07/09/17 @ 16:23
:%s/normal/bold/|%s/4/2/<CR>ZZ

0 comments

#107 John Doe Jr / bf4648 - Score: 28 - 06/04/17 @ 05:40
:%s/normal/bold<CR>:%s/4/2<CR>:wq<CR>

0 comments

#108 Benjamin Harris / bharrismac - Score: 28 - 06/20/17 @ 16:42
:%/<BS>s/normal/bold<CR>:%s/4/2<CR>ZZ

0 comments

#109 Juho Härme / jharme - Score: 29 - 05/22/17 @ 19:39
jfn;cebold<Esc>l/w<CR>fn.?4<CR>r2N.:wq<CR>

0 comments

#110 lpag / lpag_ai - Score: 29 - 05/31/17 @ 20:59
/no<CR>ciwbold<C-C><C-C>3j.jf4s2<C-C><C-C>?4<CR>.ZZ

0 comments

#111 Cody Loyd / codyloyd - Score: 37 - 06/14/17 @ 17:24
:%s/normal/bold/g<CR>3ggf4r26ggf4r2<Esc>:wq<CR>

0 comments

#112 Jared Thomas / jthomas285 - Score: 39 - 05/15/17 @ 23:20
:%sera<BS><BS><BS>/normal/bold<CR>kkjk<C-A><C-A>jjj<C-A>0<C-A><C-A>:wq<CR>

0 comments

#113 Krystle / krystle_test - Score: 55 - 05/17/17 @ 06:32
:%s/t<BS>wt-normal/wt-bold<CR><Down><Right>i:w<BS><BS><Esc>:w%<BS><BS><BS>:%s/r-4/r-2<CR><Esc>:wq<CR>

0 comments

Created by: TresErresCo

113 active golfers, 336 entries

Leaderboard (lowest score wins):
18
#1 - Urtica dioica / udioica

05/15/2017 at 04:19AM

18
#2 - Smylers / Smylers2

05/15/2017 at 05:58AM

18
#3 - Chris Robertson / chrisxrobertson

05/15/2017 at 10:43AM

18
#4 - Valacar / valacar

05/15/2017 at 08:33PM

18
#5 - Craig Langford / cllangfo

05/15/2017 at 09:26PM

18
#6 - ЯRicardo / TresErresCo

05/15/2017 at 10:04PM

18
#7 - Vaughn Cato / vaughncato

05/16/2017 at 03:59AM

18
#8 - Saki Gw / Sakigw

05/16/2017 at 07:15AM

18
#9 - John Braxler / braxler

05/16/2017 at 03:39PM

18
#10 - Russell Ball / rtball2

05/16/2017 at 10:28PM

18
#11 - Rami Hovi / hacker_lawyer

05/19/2017 at 01:37PM

18
#12 - Nelson Zhang / Fasoters

05/19/2017 at 05:38PM

18
#13 - martin tourneboeuf / martintournebo1

05/21/2017 at 10:50AM

18
#14 - Domingue Justin / _jdomingue

05/21/2017 at 05:04PM

18
#15 - rahul bhola / theRahulBhola

05/21/2017 at 05:10PM

18
#16 - Rodrigo Dorantes G. / ruydg

05/21/2017 at 06:16PM

18
#17 - Petro Тrouq / zulolosi

05/21/2017 at 09:55PM

18
#18 - 梧桐王子 / WutongYujie

05/22/2017 at 01:15AM

18
#19 - Melvin Cheung / MelvinCheung

05/22/2017 at 05:37PM

18
#20 - Parker Vaughn / parker789

05/23/2017 at 01:38PM

18
#21 - Jason Villanueva / Json_V1

05/24/2017 at 07:52AM

18
#22 - Jan Fiser / dmmn082

05/25/2017 at 02:54AM

18
#23 - ybw / yossibenwolf

05/25/2017 at 09:53AM

18
#24 - Tomas Sikula / tomsmicroblog

05/26/2017 at 05:57PM

18
#25 - Simon / simonpaitu

05/28/2017 at 02:43PM

18
#26 - TongHyun Kim / crowdy

05/30/2017 at 02:14PM

18
#27 - ssh89 / ssh89

06/04/2017 at 06:30PM

18
#28 - Michael Buckley / apolatg

06/13/2017 at 09:31PM

18
#29 - Rakesh P / rakeshpgopal

06/15/2017 at 01:47PM

18
#30 - Joel Meyer-Hamme / JoelMeyerHamme

06/18/2017 at 02:24PM

18
#31 - Blake Tereau / BlakeTereau

06/22/2017 at 07:10PM

18
#32 - akanb / GAkt6L6SlKhy8zA

06/28/2017 at 03:52AM

18
#33 - Bennett Bernardoni / BBernardoni

06/28/2017 at 05:23PM

18
#34 - Михаил Добров / mSuGfwFz2ZNvv5b

07/09/2017 at 09:21AM

18
#35 - Ben Hill / KaizenSoze70

07/11/2017 at 12:06PM

18
#36 - Adrian Englhardt / _englhardt

07/11/2017 at 12:55PM

18
#37 - Jon Barker / j0nbarker

07/14/2017 at 09:03AM

18
#38 - Ryan McNamara / MadDogMcNamara

07/16/2017 at 10:32PM

19
#39 - Assaf Lavie / AssafLavie

05/18/2017 at 06:24PM

19
#40 - some call me mattp / mattpep

05/22/2017 at 03:05PM

19
#41 - Léo Ercolanelli / ercolanellileo

05/23/2017 at 09:27PM

19
#42 - Christian Abbott / etopixi

05/30/2017 at 11:02AM

19
#43 - Adriano Benin / adrianob11

06/06/2017 at 02:48PM

19
#44 - toddagibson / toddagibson

06/08/2017 at 01:28AM

19
#45 - kanazawak / _kanazawak

06/13/2017 at 03:49PM

19
#46 - Super VedoVatto / supervedovatto

06/18/2017 at 12:39PM

19
#47 - Christian Stammen / c0smiq

06/21/2017 at 08:43AM

19
#48 - Nathan Gober / thegobernador

06/30/2017 at 01:06PM

20
#49 - Durga Swaroop Perla / durgaswaroop

05/15/2017 at 12:11PM

20
#50 - Matt Cook / mattcook08

05/15/2017 at 09:04PM

20
#51 - jakeroberts / jakeroberts

05/19/2017 at 01:12PM

21
#52 - tPenguinLTG / tpenguinltg

05/15/2017 at 01:58AM

21
#53 - Daniel K. / lan4k

05/15/2017 at 06:27AM

21
#54 - PL / petrlaitoch

05/16/2017 at 10:04AM

21
#55 - Sylvia / SylvieLorxu

05/16/2017 at 09:18PM

21
#56 - Cristian Lupașcu / clupasq

05/18/2017 at 10:57AM

21
#57 - Yossi Zahn / yossi_zahn

05/21/2017 at 07:18PM

21
#58 - Brian Hall / _bruab_

05/22/2017 at 01:41PM

21
#59 - Utkrisht Dhankar / UtkrishtDhankar

05/24/2017 at 10:00AM

21
#60 - David / Revan4Vendetta

05/26/2017 at 10:59AM

21
#61 - Adam Bozanich / abozanich

06/08/2017 at 02:19AM

21
#62 - Tom Sisk / TomSisk

06/21/2017 at 12:56AM

21
#63 - 杨洋 / 176795444

07/01/2017 at 06:03AM

21
#64 - Stop and think / ms_uncountable

07/07/2017 at 08:12PM

21
#65 - Scott Mills / smm1729

07/11/2017 at 08:04PM

22
#66 - Ryan Jarrett / texmexas

05/15/2017 at 03:51PM

22
#67 - Shriharsh / ShriharshMishra

05/15/2017 at 03:57PM

22
#68 - Bruce Horner / HerbConjurer

05/16/2017 at 01:06AM

22
#69 - Quatrix / Quatrix

05/23/2017 at 08:47PM

22
#70 - Nathan J Slaughter / NjSlaughter

05/24/2017 at 12:35AM

22
#71 - Carl Egbert / CarlOEgbert

06/09/2017 at 06:08AM

22
#72 - Emmanuel Herrero / hairarrow

06/15/2017 at 07:22PM

22
#73 - John Smith / john828495

06/16/2017 at 02:06PM

22
#74 - John Smith / johns32768

06/16/2017 at 06:47PM

22
#75 - Matt Fister / Mistah_Fistah

06/23/2017 at 02:01AM

22
#76 - squdle / squdle

06/30/2017 at 12:45PM

22
#77 - grigouille / grigouille2

07/05/2017 at 08:24PM

22
#78 - Anne Pacalet / _Anne_P

07/06/2017 at 11:22AM

23
#79 - Bruno / ShadowDancer437

05/15/2017 at 04:16AM

23
#80 - mwatkward / AftrschoolSpe

05/15/2017 at 10:05PM

23
#81 - eric & the a6 / EricAnti4r

05/15/2017 at 11:54PM

23
#82 - Pablo / suspekt007

05/17/2017 at 02:06AM

23
#83 - blamitter / blamitter

05/17/2017 at 01:55PM

23
#84 - Jeff Rimko / jeffrimko

05/18/2017 at 01:27AM

23
#85 - Bjoern M. Wibben / bjoernwibben

05/18/2017 at 08:41AM

23
#86 - almostdvs / almostdvs

05/23/2017 at 02:26AM

23
#87 - squid / zerosquid

05/26/2017 at 11:58PM

23
#88 - Kranzy / CrazyKranzy

05/30/2017 at 02:42AM

23
#89 - James / Dronak

05/31/2017 at 01:09AM

23
#90 - Richard Ivan / Richard_Ivan

06/02/2017 at 08:54PM

23
#91 - Will Gunther / WillGunther

06/11/2017 at 07:01PM

23
#92 - Mayank Suman / mayank_suman

06/24/2017 at 06:04PM

23
#93 - Andrew Sz / RoboAndy

06/29/2017 at 09:32AM

23
#94 - J / J02108006

07/02/2017 at 03:13PM

23
#95 - Jacob Buete / JBuete

07/07/2017 at 02:05PM

23
#96 - 黒澤亮二 / rjkuro

07/22/2017 at 12:11PM

24
#97 - Edouard Piette / EdPiette

05/19/2017 at 01:00PM

24
#98 - David Gustavsson / mrGustaphe

06/08/2017 at 06:25AM

24
#99 - Benoit Bou / 3enoit3

06/17/2017 at 10:25AM

25
#100 - Ryan Coopersmith / RyanCoopersmit1

06/03/2017 at 03:50PM

25
#101 - Avian Y / y_avian

06/27/2017 at 03:26PM

26
#102 - python-tweepy / python_tweepy

05/16/2017 at 03:55AM

26
#103 - Alex Hallam / alexhallam6_28

06/04/2017 at 05:22AM

26
#104 - Kieron Browne / KieronBrowne1

06/30/2017 at 09:10AM

26
#105 - Sergio Semedi / SergioSemedi

07/16/2017 at 01:31PM

27
#106 - Gurukandhamoorthi / Gurukandhamoor1

07/09/2017 at 04:23PM

28
#107 - John Doe Jr / bf4648

06/04/2017 at 05:40AM

28
#108 - Benjamin Harris / bharrismac

06/20/2017 at 04:42PM

29
#109 - Juho Härme / jharme

05/22/2017 at 07:39PM

29
#110 - lpag / lpag_ai

05/31/2017 at 08:59PM

37
#111 - Cody Loyd / codyloyd

06/14/2017 at 05:24PM

39
#112 - Jared Thomas / jthomas285

05/15/2017 at 11:20PM

55
#113 - Krystle / krystle_test

05/17/2017 at 06:32AM