Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Leaderboard, Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 4e5ec5851836e0000100003e

Alphabetize the directory

Put the contacts and their information in alphabetical order.

Start file
## Directory
   * Smith, George
      - 1234 Avenue, New York, NY
   * Bailey, Stephen
      - 4545 Harbor Ln, Atlanta, GA
      - Phone: (412) 291-1238
   * Thomas, Brent
      - 1482 Mystic Oaks, Anaheim, CA
   * Grant, Jenny
      - 198 Circle Dr, Houston, TX
      - Phone: (213) 198-9842
      - Email: [email protected]
   * Percy, Adam
      - 221 Jaguar Pkwy, Missoula, MT
   * Garfield, Misty
      - 5988 Apple Tree Ln, Memphis, TN
   * Parsons, Betty
      - Phone: (235) 523-2378
      - Email: [email protected]
   * Sanders, Terry
      - Email: [email protected]
   * Smith, Pete
      - Phone: (294) 984-2938
   * Frost, Jennifer
      - 2498 Temple Terrace, Miami, FL
   * Matthews, Frank
      - 418 Happy Trail, Phoenix, AZ
      - Phone: (985) 129-2394
      - Email: [email protected]
   * Allen, Taylor
      - Email: [email protected]
   * McCullen, Sarah
      - 247 Hidden Elm, Seattle, WA
      - Phone: (288) 283-4568
   * Perkins, Mike
      - 992 Peartree Ln, Bowling Green, KY
End file
## Directory
   * Allen, Taylor
      - Email: [email protected]
   * Bailey, Stephen
      - 4545 Harbor Ln, Atlanta, GA
      - Phone: (412) 291-1238
   * Frost, Jennifer
      - 2498 Temple Terrace, Miami, FL
   * Garfield, Misty
      - 5988 Apple Tree Ln, Memphis, TN
   * Grant, Jenny
      - 198 Circle Dr, Houston, TX
      - Phone: (213) 198-9842
      - Email: [email protected]
   * Matthews, Frank
      - 418 Happy Trail, Phoenix, AZ
      - Phone: (985) 129-2394
      - Email: [email protected]
   * McCullen, Sarah
      - 247 Hidden Elm, Seattle, WA
      - Phone: (288) 283-4568
   * Parsons, Betty
      - Phone: (235) 523-2378
      - Email: [email protected]
   * Percy, Adam
      - 221 Jaguar Pkwy, Missoula, MT
   * Perkins, Mike
      - 992 Peartree Ln, Bowling Green, KY
   * Sanders, Terry
      - Email: [email protected]
   * Smith, George
      - 1234 Avenue, New York, NY
   * Smith, Pete
      - Phone: (294) 984-2938
   * Thomas, Brent
      - 1482 Mystic Oaks, Anaheim, CA

View Diff

2,3c2,3
<    * Smith, George
<       - 1234 Avenue, New York, NY
---
>    * Allen, Taylor
>       - Email: [email protected]
7,8c7,10
<    * Thomas, Brent
<       - 1482 Mystic Oaks, Anaheim, CA
---
>    * Frost, Jennifer
>       - 2498 Temple Terrace, Miami, FL
>    * Garfield, Misty
>       - 5988 Apple Tree Ln, Memphis, TN
13,25d14
<    * Percy, Adam
<       - 221 Jaguar Pkwy, Missoula, MT
<    * Garfield, Misty
<       - 5988 Apple Tree Ln, Memphis, TN
<    * Parsons, Betty
<       - Phone: (235) 523-2378
<       - Email: [email protected]
<    * Sanders, Terry
<       - Email: [email protected]
<    * Smith, Pete
<       - Phone: (294) 984-2938
<    * Frost, Jennifer
<       - 2498 Temple Terrace, Miami, FL
30,31d18
<    * Allen, Taylor
<       - Email: [email protected]
34a22,26
>    * Parsons, Betty
>       - Phone: (235) 523-2378
>       - Email: [email protected]
>    * Percy, Adam
>       - 221 Jaguar Pkwy, Missoula, MT
36a29,36
>    * Sanders, Terry
>       - Email: [email protected]
>    * Smith, George
>       - 1234 Avenue, New York, NY
>    * Smith, Pete
>       - Phone: (294) 984-2938
>    * Thomas, Brent
>       - 1482 Mystic Oaks, Anaheim, CA

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 69 remaining solutions by signing in and submitting your own entry
#70 utopiah / @utopiah - Score: 39 - 06/10/12 @ 08:40
:%s/\n\s*-/?/|2,sor|%s/?/\r      -/g|x<CR>

0 comments

#71 Joshua Draper / @JoshuaBDraper - Score: 39 - 05/25/13 @ 10:10
:%s/\n\(\ *-\)\@=/?/|2,sor|%s/?/\r/g|x<CR>

0 comments

#72 Sergi Sorribas / @lerovitch - Score: 40 - 09/15/11 @ 07:57
:%s/\n\s*-/?<CR>:2,sor<CR>:%s/?/\r      -/g<CR>ZZ

0 comments

#73 William Dunand / @wdunand - Score: 40 - 11/14/11 @ 00:47
qq/- <CR>kJxq20@q:2,sor<CR>qq?- <CR>i<CR>   <Esc>q20@qZZ

0 comments

#74 Glen / @Glen_S - Score: 41 - 07/26/12 @ 20:16
D:%s/\n *-/ -<CR>:sor<CR>p:%s/ -/<C-V><CR>      -/g<CR>ZZ

0 comments

#75 Renat Aksitov / @Korvin79 - Score: 42 - 02/11/12 @ 04:00
:%s/\n *-/ -<NL>:2,$sor<NL>:%s/ -/<C-V><NL>      -/g<NL>ZZ

0 comments

#76 Oliver Christ / @0liverChrist - Score: 42 - 10/15/13 @ 14:22
:%s/\n\s*-/!<CR>:2,15sor<CR>:%s/!/\r      -/g<CR>ZZ

0 comments

#77 Joonas Pihlajamaa / @jokkebk - Score: 42 - 02/25/14 @ 23:56
:g/-/no<S-Tab> kJ<CR>:sor<CR>:%s/ -/\r     &/g<CR>:$m0<CR>ZZ

0 comments

#78 James / @Dronak - Score: 42 - 09/19/14 @ 15:45
:%s/\n *-/ -<CR>:2,$sor<CR>:%s/ -/\r      -/g<CR>ZZ

0 comments

#79 Sam Burk / @smwbk - Score: 43 - 12/21/13 @ 13:50
:%s/\n\s*-/ -<CR>:2,$sor<CR>:%s/ -/\r      -/g<CR>ZZ

0 comments

#80 Jean-Rene David / @jeanrenedavid - Score: 44 - 11/25/11 @ 17:07
:g/\*/,/\*/-1j!<CR> gJ:2,$sor<CR>:%s/  *-/\r&/g<CR>ZZ

0 comments

#81 Fabien Cazenave / @fabi1cazenave - Score: 44 - 02/16/12 @ 07:14
:%s/\n\s*-/ -<CR>Vggj:sor<CR>:%s/ -/\r      -/g<CR>ZZ

0 comments

#82 Gavin Rogers / @KC9KVQ - Score: 44 - 04/17/12 @ 12:07
:%s/\n\s*-/ -<CR>Vggj:sor<CR>:%s/ -/\r      -/g<CR>ZZ

0 comments

#83 Tim Tsu / @vimgolfpunk - Score: 51 - 09/01/11 @ 07:30
jV35G:s/\n/Q<CR>qq/*<CR>?Q<CR>r<CR>lq12@q:2,15sor<CR>:%s/Q/\r/g|x<CR>

0 comments

#84 Viktor Jackson / @AntiStalinista - Score: 78 - 05/05/12 @ 00:48
d2wj35J:s/ */<C-V><CR>   */g<CR>u:<Up><Left><Left><Left><Left><Left><Left><Left><Left><Left>\<CR><CR>gg:sort u<CR>:%s/ =<BS>-<BS>-/<C-V><CR>      -/g<CR>ggpjddZZ

0 comments

#85 Mike Roher / @mikeroher - Score: 90 - 04/23/12 @ 08:30
<Esc>::%s/\n\(\ *-\)\@=/?/|2,sor|%s/?/\r/g|x<CR><BS><BS><BS><BS><Del><Right>x<Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><BS><CR>

0 comments

#86 Justin Knag / @justinknag - Score: 116 - 09/03/14 @ 09:32
:%s/\v(\W*)<Left><Left><Left><Left><Left>\n<Right><Right><Right><Right>-<Left><Left><Left><Left><Left><Left><Left>(<Right><Right>)<Right><Right><Right><Right><Right><Right><Right>/\1<BS>2/g<CR>:sor<CR>:<Up><Up><Left><Left><Left><Left><Left><Left><Right><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS>      -<Right><Right><Down><Left><Right><Right><Right><BS><BS>/\r&<Left><Left><Left><Right><Right><Right>/g<CR>GfddddjHPZZ

0 comments

#87 無ん垢の叫び / @john_ababa - Score: 1030 - 02/28/12 @ 07:51
jdG:a!<CR>   * Allen, Taylor<CR>      - Email: [email protected]<CR>   * Bailey, Stephen<CR>      - 4545 Harbor Ln, Atlanta, GA<CR>      - Phone: (412) 291-1238<CR>   * Frost, Jennifer<CR>      - 2498 Temple Terrace, Miami, FL<CR>   * Garfield, Misty<CR>      - 5988 Apple Tree Ln, Memphis, TN<CR>   * Grant, Jenny<CR>      - 198 Circle Dr, Houston, TX<CR>      - Phone: (213) 198-9842<CR>      - Email: [email protected]<CR>   * Matthews, Frank<CR>      - 418 Happy Trail, Phoenix, AZ<CR>      - Phone: (985) 129-2394<CR>      - Email: [email protected]<CR>   * McCullen, Sarah<CR>      - 247 Hidden Elm, Seattle, WA<CR>      - Phone: (288) 283-4568<CR>   * Parsons, Betty<CR>      - Phone: (235) 523-2378<CR>      - Email: [email protected]<CR>   * Percy, Adam<CR>      - 221 Jaguar Pkwy, Missoula, MT<CR>   * Perkins, Mike<CR>      - 992 Peartree Ln, Bowling Green, KY<CR>   * Sanders, Terry<CR>      - Email: [email protected]<CR>   * Smith, George<CR>      - 1234 Avenue, New York, NY<CR>   * Smith, Pete<CR>      - Phone: (294) 984-2938<CR>   * Thomas, Brent<CR>      - 1482 Mystic Oaks, Anaheim, CA<CR><Esc><Esc>ZZ

0 comments

Created by: @connermcd

87 active golfers, 236 entries

Leaderboard (lowest score wins):
Twitter_normal
30
#1 - Martin Aumueller / @aumuell

12/13/2011 at 01:01PM

Gintoki_normal
30
#2 - You-Siang Lin / @yslinnctu

12/14/2011 at 07:14PM

Abdel_normal
30
#3 - Abdel Said / @abdelsaid

02/14/2012 at 02:03PM

122_normal
30
#4 - not so punk :] / @notsopunk

03/30/2012 at 11:46PM

Astro_seek_normal
30
#5 - Sebastian Kusnier / @skusnier

05/06/2012 at 12:31PM

Q6hrg93p4r3hn56thmd0_normal
30
#6 - Urtica dioica / @udioica

05/21/2012 at 07:29PM

Fepic_normal
30
#7 - Federico Galassi / @federicogalassi

05/24/2012 at 12:23AM

Default_profile_0_normal
30
#8 - Benoit Mortgat / @Benoit_Mortgat

06/06/2012 at 08:29AM

Arneicon-128-print_normal
30
#9 - Arne Ehrlich / @typedlambda

09/06/2012 at 12:27AM

40051_789281885907_29616532_44170636_2091417_n_normal
30
#10 - Conner McDaniel / @connermcd

09/24/2012 at 05:13PM

7bbc92500a24e0892967c51a50f1ff8e_normal
30
#11 - Tyler / @tylerbindon

04/06/2013 at 10:21AM

8ig-egq0_normal
30
#12 - John Braxler / @braxler

05/23/2014 at 05:39AM

Tyler_normal
31
#13 - Tyler Wymer / @twymer

10/13/2011 at 06:03PM

D9a0dd6910073844c21991cfa8f44a80_normal
31
#14 - Jason Bruce / @jbrucenet

11/23/2011 at 08:04PM

N534989927_498_normal
31
#15 - Chaiporn Jaikaeo / @cjaikaeo

11/27/2011 at 11:02AM

Adept_normal
31
#16 - Balkoth / @_Balkoth_

12/03/2011 at 02:19PM

Default_profile_4_normal
31
#17 - no / @jt_vg

12/14/2011 at 11:45AM

Default_profile_5_normal
31
#18 - Matthew / @so3arbelnox

02/01/2012 at 06:48PM

Bunnies_normal
31
#19 - Trevor Powell / @DoomedBunnies

04/15/2013 at 11:13PM

Ewbdmdtg_normal
32
#20 - Tim Chase / @gumnos

08/31/2011 at 05:23PM

4_normal
32
#21 - Oleg Roshupkin / @jjjahson

09/21/2011 at 11:30PM

Jlove201003sq_normal
32
#22 - Justin Love / @wondible

09/23/2011 at 12:05PM

P1000007_normal
32
#23 - h_east (DDD ready) / @h_east

09/27/2011 at 02:50AM

C702ba8d8f9aaedf04e648c132419e09_normal
32
#24 - Neal Lindsay / @neall

10/14/2011 at 08:31PM

Avatar_normal
32
#25 - Jer Wilson / @superjercom

10/28/2011 at 01:59AM

546437_10150662927940598_511515597_9793606_193534441_n_normal
32
#26 - Andy Pincombe / @ampersandy

10/29/2011 at 02:44AM

Zia_normal
32
#27 - Gabriel Barta / @gbarta

12/02/2011 at 06:27AM

Av_normal
32
#28 - Vasil Sakarov / @vsakarov

12/29/2011 at 08:19AM

Oliver_normal
32
#29 - oliver mueller / @marcontwit

01/21/2012 at 05:25AM

Default_profile_3_normal
32
#30 - learninghang / @learninghang

04/14/2012 at 02:43AM

Default_profile_6_normal
32
#31 - Alessandro Lisander / @wuiimu

01/05/2014 at 05:27AM

Avatar-small_normal
33
#32 - Hu Junfeng / @junfeng

09/01/2011 at 01:33AM

Whitney_avatar2_normal
33
#33 - dtennant / @dtennant

09/16/2011 at 10:22AM

7254d40a49995ef1e06b237d0e705153_normal
33
#34 - Matt Woelk / @MattWoelk

11/11/2011 at 11:36AM

L58b_qwv_normal
34
#35 - Simon Scarfe / @simonscarfe

09/10/2011 at 05:44AM

Default_profile_4_normal
34
#36 - Nonayo Biznast / @NonayoBiznast

09/10/2011 at 06:23PM

Default_profile_6_normal
34
#37 - Shaun Skelton / @skeletalmonkey

09/11/2011 at 04:27PM

Default_profile_5_normal
34
#38 - Scott Nielsen / @smniel

09/25/2011 at 04:31PM

Screen_shot_2010-12-04_at_12.33.07_pm_normal
34
#39 - Ethan Van den Berg / @showntome

10/14/2011 at 07:41AM

I_normal
34
#40 - A / @tndrnt

12/11/2011 at 11:05AM

Default_profile_1_normal
34
#41 - Kurt Gaastra / @KGaastra

02/10/2012 at 05:22PM

4654945923_eb2c60ee5f_normal
34
#42 - Kerson Hsiao / @KersonHsiao

07/18/2012 at 05:17AM

Twitter_normal
34
#43 - Drew Neil / @nelstrom

11/26/2012 at 02:16PM

Default_profile_3_normal
34
#44 - Default default / @Fuck_default

05/07/2014 at 02:46AM

Default_profile_6_normal
35
#45 - Christopher Erin / @Chris__Erin

09/20/2011 at 01:48PM

Default_profile_4_normal
35
#46 - bmamax / @bmamax

01/13/2012 at 02:37PM

Default_profile_1_normal
36
#47 - Theodore Finn Gast / @tfgast

08/31/2011 at 07:53PM

Rubberducky_reasonably_small_normal
37
#48 - Mohammed / @mbadran

09/03/2011 at 07:56PM

3ubh7kcfj18s5m9erc6p_normal
37
#49 - Marcin Sza / @coot_

09/03/2011 at 08:32PM

2_normal
37
#50 - Dario Cazzaro / @darioqa

09/17/2011 at 11:32AM

D022d5e845c9edf5b004b22ff0ee58ab_normal
37
#51 - Mislav Marohnić / @mislav

12/06/2011 at 08:30AM

Anger_normal
38
#52 - Dühöngő / @aswna

09/02/2011 at 09:59AM

Gravatar_normal
38
#53 - Jesús Espino / @jespinog

09/07/2011 at 07:24AM

Mobile_photo_mar_15__2010_12_39_49_normal
38
#54 - Rod Knowlton / @codelahoma

04/24/2012 at 11:23AM

2b2760e92e36c38ca61fe53782b336a0_normal
38
#55 - Dave@Highgroove / @HighgrooveDave

05/22/2012 at 02:27PM

Default_profile_6_normal
38
#56 - Son of Bongo / @bpcode

09/14/2012 at 07:18AM

Default_profile_5_normal
38
#57 - cj / @cj01101

10/18/2013 at 03:42PM

Aviv_normal
39
#58 - Aviv Ben-Yosef / @avivby

09/02/2011 at 03:57AM

Default_profile_1_normal
39
#59 - Malaney / @iamjh

09/02/2011 at 09:37AM

Uwe_horns_by_joao_normal
39
#60 - Dave / @zzdave13

09/02/2011 at 03:25PM

Default_profile_5_normal
39
#61 - Ryan Menezes / @rydmen

09/20/2011 at 12:29AM

Ben-mugshot_normal
39
#62 - Ben Sherman / @bensherman

10/09/2011 at 09:41PM

Murky-satyr_p_normal
39
#63 - murky-satyr / @m_satyr

10/12/2011 at 01:59AM

216035_1931245446546_1404540366_3301007_5330475_n_normal
39
#64 - Jakub Arnold / @darthdeus

10/16/2011 at 08:51AM

Head_normal
39
#65 - Panino Matic / @paninomatik

10/27/2011 at 10:54AM

Face1_normal
39
#66 - Travis Jeffery / @travisjeffery

11/16/2011 at 08:04PM

48973_227700726_3096_q_normal
39
#67 - 9diov / @9diov

11/25/2011 at 06:53PM

Dnb_logo_red_normal
39
#68 - Dan Herbert / @pocketninja_au

02/28/2012 at 05:46PM

E269db141731bb4b5dd8d6c1288d39c7_normal
39
#69 - Jonathan Lozinski / @jlozinski

04/21/2012 at 11:17AM

Fabien-simpsonsized_normal
39
#70 - utopiah / @utopiah

06/10/2012 at 08:40AM

Default_profile_5_normal
39
#71 - Joshua Draper / @JoshuaBDraper

05/25/2013 at 10:10AM

Twitter_normal
40
#72 - Sergi Sorribas / @lerovitch

09/15/2011 at 07:57AM

Default_profile_6_normal
40
#73 - William Dunand / @wdunand

11/14/2011 at 12:47AM

Emblemofroto_normal
41
#74 - Glen / @Glen_S

07/26/2012 at 08:16PM

Default_profile_2_normal
42
#75 - Renat Aksitov / @Korvin79

02/11/2012 at 04:00AM

Default_profile_2_normal
42
#76 - Oliver Christ / @0liverChrist

10/15/2013 at 02:22PM

Netti_pihlajo1_lthumb_normal
42
#77 - Joonas Pihlajamaa / @jokkebk

02/25/2014 at 11:56PM

Arcadia_avatar_normal
42
#78 - James / @Dronak

09/19/2014 at 03:45PM

0efce70dfb1eef981211c87ec2fcde93_normal
43
#79 - Sam Burk / @smwbk

12/21/2013 at 01:50PM

Default_profile_6_normal
44
#80 - Jean-Rene David / @jeanrenedavid

11/25/2011 at 05:07PM

Rsraoizd_normal
44
#81 - Fabien Cazenave / @fabi1cazenave

02/16/2012 at 07:14AM

Default_profile_0_normal
44
#82 - Gavin Rogers / @KC9KVQ

04/17/2012 at 12:07PM

Default_profile_1_normal
51
#83 - Tim Tsu / @vimgolfpunk

09/01/2011 at 07:30AM

Twitter_normal
78
#84 - Viktor Jackson / @AntiStalinista

05/05/2012 at 12:48AM

Img_0019_normal
90
#85 - Mike Roher / @mikeroher

04/23/2012 at 08:30AM

D599d5b47b4a2b0db73f765021699812_normal
116
#86 - Justin Knag / @justinknag

09/03/2014 at 09:32AM

Bc879469f279ee24b7fbdfad7c2216d9_normal
1030
#87 - 無ん垢の叫び / @john_ababa

02/28/2012 at 07:51AM