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):
30
#1 - Martin Aumueller / @aumuell

12/13/2011 at 01:01PM

30
#2 - You-Siang Lin / @yslinnctu

12/14/2011 at 07:14PM

30
#3 - Abdel Said / @abdelsaid

02/14/2012 at 02:03PM

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

03/30/2012 at 11:46PM

30
#5 - Sebastian Kusnier / @skusnier

05/06/2012 at 12:31PM

30
#6 - Urtica dioica / @udioica

05/21/2012 at 07:29PM

30
#7 - Federico Galassi / @federicogalassi

05/24/2012 at 12:23AM

30
#8 - Benoit Mortgat / @Benoit_Mortgat

06/06/2012 at 08:29AM

30
#9 - Arne Ehrlich / @typedlambda

09/06/2012 at 12:27AM

30
#10 - Conner McDaniel / @connermcd

09/24/2012 at 05:13PM

30
#11 - Tyler / @tylerbindon

04/06/2013 at 10:21AM

30
#12 - John Braxler / @braxler

05/23/2014 at 05:39AM

31
#13 - Tyler Wymer / @twymer

10/13/2011 at 06:03PM

31
#14 - Jason Bruce / @jbrucenet

11/23/2011 at 08:04PM

31
#15 - Chaiporn Jaikaeo / @cjaikaeo

11/27/2011 at 11:02AM

31
#16 - Balkoth / @_Balkoth_

12/03/2011 at 02:19PM

31
#17 - no / @jt_vg

12/14/2011 at 11:45AM

31
#18 - Matthew / @so3arbelnox

02/01/2012 at 06:48PM

31
#19 - Trevor Powell / @DoomedBunnies

04/15/2013 at 11:13PM

32
#20 - Tim Chase / @gumnos

08/31/2011 at 05:23PM

32
#21 - Oleg Roshupkin / @jjjahson

09/21/2011 at 11:30PM

32
#22 - Justin Love / @wondible

09/23/2011 at 12:05PM

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

09/27/2011 at 02:50AM

32
#24 - Neal Lindsay / @neall

10/14/2011 at 08:31PM

32
#25 - Jer Wilson / @superjercom

10/28/2011 at 01:59AM

32
#26 - Andy Pincombe / @ampersandy

10/29/2011 at 02:44AM

32
#27 - Gabriel Barta / @gbarta

12/02/2011 at 06:27AM

32
#28 - Vasil Sakarov / @vsakarov

12/29/2011 at 08:19AM

32
#29 - oliver mueller / @marcontwit

01/21/2012 at 05:25AM

32
#30 - learninghang / @learninghang

04/14/2012 at 02:43AM

32
#31 - Alessandro Lisander / @wuiimu

01/05/2014 at 05:27AM

33
#32 - Hu Junfeng / @junfeng

09/01/2011 at 01:33AM

33
#33 - dtennant / @dtennant

09/16/2011 at 10:22AM

33
#34 - Matt Woelk / @MattWoelk

11/11/2011 at 11:36AM

34
#35 - Simon Scarfe / @simonscarfe

09/10/2011 at 05:44AM

34
#36 - Nonayo Biznast / @NonayoBiznast

09/10/2011 at 06:23PM

34
#37 - Shaun Skelton / @skeletalmonkey

09/11/2011 at 04:27PM

34
#38 - Scott Nielsen / @smniel

09/25/2011 at 04:31PM

34
#39 - Ethan Van den Berg / @showntome

10/14/2011 at 07:41AM

34
#40 - A / @tndrnt

12/11/2011 at 11:05AM

34
#41 - Kurt Gaastra / @KGaastra

02/10/2012 at 05:22PM

34
#42 - Kerson Hsiao / @KersonHsiao

07/18/2012 at 05:17AM

34
#43 - Drew Neil / @nelstrom

11/26/2012 at 02:16PM

34
#44 - Default default / @Fuck_default

05/07/2014 at 02:46AM

35
#45 - Christopher Erin / @Chris__Erin

09/20/2011 at 01:48PM

35
#46 - bmamax / @bmamax

01/13/2012 at 02:37PM

36
#47 - Theodore Finn Gast / @tfgast

08/31/2011 at 07:53PM

37
#48 - Mohammed / @mbadran

09/03/2011 at 07:56PM

37
#49 - Marcin Sza / @coot_

09/03/2011 at 08:32PM

37
#50 - Dario Cazzaro / @darioqa

09/17/2011 at 11:32AM

37
#51 - Mislav Marohnić / @mislav

12/06/2011 at 08:30AM

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

09/02/2011 at 09:59AM

38
#53 - Jesús Espino / @jespinog

09/07/2011 at 07:24AM

38
#54 - Rod Knowlton / @codelahoma

04/24/2012 at 11:23AM

38
#55 - Dave@Highgroove / @HighgrooveDave

05/22/2012 at 02:27PM

38
#56 - Son of Bongo / @bpcode

09/14/2012 at 07:18AM

38
#57 - cj / @cj01101

10/18/2013 at 03:42PM

39
#58 - Aviv Ben-Yosef / @avivby

09/02/2011 at 03:57AM

39
#59 - Malaney / @iamjh

09/02/2011 at 09:37AM

39
#60 - Dave / @zzdave13

09/02/2011 at 03:25PM

39
#61 - Ryan Menezes / @rydmen

09/20/2011 at 12:29AM

39
#62 - Ben Sherman / @bensherman

10/09/2011 at 09:41PM

39
#63 - murky-satyr / @m_satyr

10/12/2011 at 01:59AM

39
#64 - Jakub Arnold / @darthdeus

10/16/2011 at 08:51AM

39
#65 - Panino Matic / @paninomatik

10/27/2011 at 10:54AM

39
#66 - Travis Jeffery / @travisjeffery

11/16/2011 at 08:04PM

39
#67 - 9diov / @9diov

11/25/2011 at 06:53PM

39
#68 - Dan Herbert / @pocketninja_au

02/28/2012 at 05:46PM

39
#69 - Jonathan Lozinski / @jlozinski

04/21/2012 at 11:17AM

39
#70 - utopiah / @utopiah

06/10/2012 at 08:40AM

39
#71 - Joshua Draper / @JoshuaBDraper

05/25/2013 at 10:10AM

40
#72 - Sergi Sorribas / @lerovitch

09/15/2011 at 07:57AM

40
#73 - William Dunand / @wdunand

11/14/2011 at 12:47AM

41
#74 - Glen / @Glen_S

07/26/2012 at 08:16PM

42
#75 - Renat Aksitov / @Korvin79

02/11/2012 at 04:00AM

42
#76 - Oliver Christ / @0liverChrist

10/15/2013 at 02:22PM

42
#77 - Joonas Pihlajamaa / @jokkebk

02/25/2014 at 11:56PM

42
#78 - James / @Dronak

09/19/2014 at 03:45PM

43
#79 - Sam Burk / @smwbk

12/21/2013 at 01:50PM

44
#80 - Jean-Rene David / @jeanrenedavid

11/25/2011 at 05:07PM

44
#81 - Fabien Cazenave / @fabi1cazenave

02/16/2012 at 07:14AM

44
#82 - Gavin Rogers / @KC9KVQ

04/17/2012 at 12:07PM

51
#83 - Tim Tsu / @vimgolfpunk

09/01/2011 at 07:30AM

78
#84 - Viktor Jackson / @AntiStalinista

05/05/2012 at 12:48AM

90
#85 - Mike Roher / @mikeroher

04/23/2012 at 08:30AM

116
#86 - Justin Knag / @justinknag

09/03/2014 at 09:32AM

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

02/28/2012 at 07:51AM