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 5486c522908f4600023c53fa

Test everything!

... and build the desired input data structure. Transform a list of values into a non-trivial format.

Start file
        { changed_field => 'lorem', old_value => 'a', new_value => 'b' },
lorem ipsum dolor sit amet elitr sed diam non umy eir mod tempor invi dunt lab ore
dol1 dol2 dol3 dol4 dol5 dol6 dol7 dol8 dol9 dol10 mag1 mag2 mag3 mag4 mag5 mag6 mag7 mag8 mag9 mag10
End file
        { changed_field => 'lorem', old_value => 'a', new_value => 'b' },
        { changed_field => 'ipsum', old_value => 'a', new_value => 'b' },
        { changed_field => 'dolor', old_value => 'a', new_value => 'b' },
        { changed_field => 'sit', old_value => 'a', new_value => 'b' },
        { changed_field => 'amet', old_value => 'a', new_value => 'b' },
        { changed_field => 'elitr', old_value => 'a', new_value => 'b' },
        { changed_field => 'sed', old_value => 'a', new_value => 'b' },
        { changed_field => 'diam', old_value => 'a', new_value => 'b' },
        { changed_field => 'non', old_value => 'a', new_value => 'b' },
        { changed_field => 'umy', old_value => 'a', new_value => 'b' },
        { changed_field => 'eir', old_value => 'a', new_value => 'b' },
        { changed_field => 'mod', old_value => 'a', new_value => 'b' },
        { changed_field => 'tempor', old_value => 'a', new_value => 'b' },
        { changed_field => 'invi', old_value => 'a', new_value => 'b' },
        { changed_field => 'dunt', old_value => 'a', new_value => 'b' },
        { changed_field => 'lab', old_value => 'a', new_value => 'b' },
        { changed_field => 'ore', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol1', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol2', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol3', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol4', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol5', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol6', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol7', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol8', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol9', old_value => 'a', new_value => 'b' },
        { changed_field => 'dol10', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag1', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag2', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag3', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag4', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag5', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag6', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag7', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag8', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag9', old_value => 'a', new_value => 'b' },
        { changed_field => 'mag10', old_value => 'a', new_value => 'b' },

View Diff

2,3c2,37
< lorem ipsum dolor sit amet elitr sed diam non umy eir mod tempor invi dunt lab ore
< dol1 dol2 dol3 dol4 dol5 dol6 dol7 dol8 dol9 dol10 mag1 mag2 mag3 mag4 mag5 mag6 mag7 mag8 mag9 mag10
---
>         { changed_field => 'ipsum', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dolor', old_value => 'a', new_value => 'b' },
>         { changed_field => 'sit', old_value => 'a', new_value => 'b' },
>         { changed_field => 'amet', old_value => 'a', new_value => 'b' },
>         { changed_field => 'elitr', old_value => 'a', new_value => 'b' },
>         { changed_field => 'sed', old_value => 'a', new_value => 'b' },
>         { changed_field => 'diam', old_value => 'a', new_value => 'b' },
>         { changed_field => 'non', old_value => 'a', new_value => 'b' },
>         { changed_field => 'umy', old_value => 'a', new_value => 'b' },
>         { changed_field => 'eir', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mod', old_value => 'a', new_value => 'b' },
>         { changed_field => 'tempor', old_value => 'a', new_value => 'b' },
>         { changed_field => 'invi', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dunt', old_value => 'a', new_value => 'b' },
>         { changed_field => 'lab', old_value => 'a', new_value => 'b' },
>         { changed_field => 'ore', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol1', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol2', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol3', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol4', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol5', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol6', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol7', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol8', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol9', old_value => 'a', new_value => 'b' },
>         { changed_field => 'dol10', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag1', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag2', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag3', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag4', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag5', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag6', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag7', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag8', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag9', old_value => 'a', new_value => 'b' },
>         { changed_field => 'mag10', old_value => 'a', new_value => 'b' },

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 53 remaining solutions by signing in and submitting your own entry
#54 RetirePlanner / @RetirePlanner24 - Score: 83 - 12/09/14 @ 15:17
^^f'v^hhhhhhhhhhhhy:2,3s/ /\r/g<CR>:s<BS>2,$s/^/<C-R>"/<CR>ggf';v$y:2,$s/$/<C-R>"<BS>/<CR>ggdd:w<CR>:wq<BS>q<BS><BS>q<CR>

0 comments


Created by: @Someone_Busy

54 active golfers, 186 entries

Leaderboard (lowest score wins):
33
#31 - Paul Salcido / @PaulCodeMonkey

12/10/2014 at 05:34PM

33
#32 - James / @Dronak

12/12/2014 at 03:17AM

33
#33 - Ed / @posva

12/18/2014 at 10:31AM

33
#34 - r. / @rmarvie

12/19/2014 at 08:51AM

33
#35 - Olivier Bégassat / @zk_evm

06/14/2023 at 08:19PM

34
#36 - mnx / @mnxx

12/09/2014 at 10:39AM

34
#37 - Thameera Senanayaka / @thameera

12/10/2014 at 02:28PM

34
#38 - ぷりケツにるぽ / @nillpo

12/25/2014 at 12:07PM

34
#39 - Jake Eskel / @JakeEskel

01/02/2015 at 06:00PM

36
#40 - Josu Oyanguren / @josuoyanguren

12/09/2014 at 11:41AM

36
#41 - vg / @vg53210350

10/29/2018 at 11:48AM

37
#42 - ltn614 / @ltn614

09/25/2015 at 03:38AM

39
#43 - Elizabeth / @sprinkles418

12/13/2014 at 05:34AM

40
#44 - Lieven Keersmaekers / @LievenKeersmaek

12/09/2014 at 07:58PM

40
#45 - Andrii Maksai / @AMaksai

10/12/2016 at 08:52PM

40
#46 - Gurukandhamoorthi / @Gurukandhamoor1

09/02/2017 at 05:15PM

41
#47 - JimmyGymglish / @JGymglish

01/15/2020 at 12:56PM

42
#48 - Marcin Radomski / @_dextero

12/09/2014 at 10:17AM

42
#49 - Tom Reznick / @threznick

12/10/2014 at 10:17PM

43
#50 - Martynas Bardauskas / @mbardauskas

08/02/2018 at 12:59PM

44
#51 - Frederik Vosberg / @FrediVosberg

12/10/2014 at 07:59AM

46
#52 - Oliver Christ / @0liverChrist

01/12/2015 at 12:11AM

50
#53 - Alexandre Ignjatovic / @bankair

12/09/2014 at 11:37AM

83
#54 - RetirePlanner / @RetirePlanner24

12/09/2014 at 03:17PM