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 54a480bb5db1600002939b54

increment by column in XML

modify an arbitrary "column" in an xml table by incrementing a an arbitrary placeholder string

Start file
<root>
  <row>
    <alpha>mail</alpha>
    <bravo>@@@@@</bravo>
  </row>
  <row>
    <alpha>male</alpha>
    <bravo>@@@@@</bravo>
  </row>
  <row>
    <alpha>mayel</alpha>
    <bravo>@@@@@</bravo>
  </row>
  <row>
    <alpha>mahel</alpha>
    <bravo>@@@@@</bravo>
  </row>
</root>
End file
<root>
  <row>
    <alpha>mail</alpha>
    <bravo>10000</bravo>
  </row>
  <row>
    <alpha>male</alpha>
    <bravo>10001</bravo>
  </row>
  <row>
    <alpha>mayel</alpha>
    <bravo>10002</bravo>
  </row>
  <row>
    <alpha>mahel</alpha>
    <bravo>10003</bravo>
  </row>
</root>

View Diff

@@ -1,18 +1,18 @@
 <root>
   <row>
     <alpha>mail</alpha>
-    <bravo>@@@@@</bravo>
+    <bravo>10000</bravo>
   </row>
   <row>
     <alpha>male</alpha>
-    <bravo>@@@@@</bravo>
+    <bravo>10001</bravo>
   </row>
   <row>
     <alpha>mayel</alpha>
-    <bravo>@@@@@</bravo>
+    <bravo>10002</bravo>
   </row>
   <row>
     <alpha>mahel</alpha>
-    <bravo>@@@@@</bravo>
+    <bravo>10003</bravo>
   </row>
-</root>
+</root>
\ No newline at end of file

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 54 remaining solutions by signing in and submitting your own entry
#55 luffy / @raxcoi - Score: 49 - 01/08/15 @ 11:07
:let @a=10000|%s/@@@@@/\=@a+setreg('a', @a+1)/<CR>ZZ

0 comments


Created by: @dreftymac

55 active golfers, 152 entries

Leaderboard (lowest score wins):
19
#1 - Jon Krause / @jkrause314

01/20/2016 at 10:42PM

19
#2 - Turkey Man / @lvturkeyman

12/07/2017 at 03:14AM

19
#3 - vimthrowaway / @vimgolf_throw

04/08/2018 at 11:23AM

19
#4 - DHM / @DHM29978992

05/29/2018 at 03:04AM

19
#5 - John Braxler / @braxler

07/09/2019 at 05:04PM

19
#6 - RockerZZY / @rocker_zzy

09/02/2020 at 03:48PM

19
#7 - Jean George / @JeanGeo20504212

06/20/2022 at 05:10PM

19
#8 - Alex / @AlexanderHeatl2

07/08/2022 at 08:42PM

19
#9 - Peppa Pig / @PeppaPigSg

07/03/2024 at 03:04AM

20
#10 - Urtica dioica / @udioica

01/01/2015 at 07:54AM

20
#11 - Petro Тrouq / @zulolosi

01/01/2015 at 11:15AM

20
#12 - Kai Yuan / @kentyuan

01/01/2015 at 08:55PM

20
#13 - Pavlo Klets / @p01nt

01/01/2015 at 10:43PM

20
#14 - Jake Eskel / @JakeEskel

01/02/2015 at 04:46AM

20
#15 - Maximiliano Padulo / @mpadulo

01/02/2015 at 08:59PM

20
#16 - Piotr G. / @gbdlin

01/03/2015 at 04:14PM

20
#17 - Jordana Lachow / @TomofBedlam

01/04/2015 at 02:40AM

20
#18 - kimber gonzalez / @kimberlycreates

01/07/2015 at 03:07PM

20
#19 - kobby / @_kafdot_

01/13/2015 at 11:05PM

20
#20 - Charles H. Leggett / @cleggett

01/15/2015 at 01:33PM

20
#21 - Carlos A Henríquez Q / @lagunex

01/16/2015 at 05:47PM

20
#22 - mark0829 / @mark0829

01/25/2015 at 01:17PM

20
#23 - pftb12345 / @pftb12345

04/09/2015 at 02:14PM

20
#24 - Joey / @joeyism101

09/11/2015 at 02:10AM

20
#25 - Walker Boh / @walker_boh

10/16/2015 at 10:46AM

21
#26 - Matt / @mcr05

01/01/2015 at 01:37PM

21
#27 - xieyh11 / @xieyh11

02/26/2015 at 09:39AM

22
#28 - ゆきみ / @edp02

01/01/2015 at 08:46AM

22
#29 - mnx / @mnxx

01/02/2015 at 08:43AM

22
#30 - ぷりケツにるぽ / @nillpo

01/05/2015 at 06:38AM