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 @ 15:40
:%s/\n\s*-/?/|2,sor|%s/?/\r      -/g|x<CR>

0 comments

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

0 comments

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

0 comments

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

0 comments

#74 Glen / @Glen_S - Score: 41 - 07/27/12 @ 03: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 @ 12: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 @ 21:22
:%s/\n\s*-/!<CR>:2,15sor<CR>:%s/!/\r      -/g<CR>ZZ

0 comments

#77 Joonas Pihlajamaa / @jokkebk - Score: 42 - 02/26/14 @ 07: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 @ 22:45
:%s/\n *-/ -<CR>:2,$sor<CR>:%s/ -/\r      -/g<CR>ZZ

0 comments

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

0 comments

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

0 comments

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

0 comments

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

0 comments

#83 Tim Tsu / @vimgolfpunk - Score: 51 - 09/01/11 @ 14: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 @ 07: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 @ 15: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 @ 16: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 @ 15: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 09:01PM

30
#2 - You-Siang Lin / @yslinnctu

12/15/2011 at 03:14AM

30
#3 - Abdel Said / @abdelsaid

02/14/2012 at 10:03PM

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

03/31/2012 at 06:46AM

30
#5 - Sebastian Kusnier / @skusnier

05/06/2012 at 07:31PM

30
#6 - Urtica dioica / @udioica

05/22/2012 at 02:29AM

30
#7 - Federico Galassi / @federicogalassi

05/24/2012 at 07:23AM

30
#8 - Benoit Mortgat / @Benoit_Mortgat

06/06/2012 at 03:29PM

30
#9 - Arne Ehrlich / @typedlambda

09/06/2012 at 07:27AM

30
#10 - Conner McDaniel / @connermcd

09/25/2012 at 12:13AM

30
#11 - Tyler / @tylerbindon

04/06/2013 at 05:21PM

30
#12 - John Braxler / @braxler

05/23/2014 at 12:39PM

31
#13 - Tyler Wymer / @twymer

10/14/2011 at 01:03AM

31
#14 - Jason Bruce / @jbrucenet

11/24/2011 at 04:04AM

31
#15 - Chaiporn Jaikaeo / @cjaikaeo

11/27/2011 at 07:02PM

31
#16 - Balkoth / @_Balkoth_

12/03/2011 at 10:19PM

31
#17 - no / @jt_vg

12/14/2011 at 07:45PM

31
#18 - Matthew / @so3arbelnox

02/02/2012 at 02:48AM

31
#19 - Trevor Powell / @DoomedBunnies

04/16/2013 at 06:13AM

32
#20 - Tim Chase / @gumnos

09/01/2011 at 12:23AM

32
#21 - Oleg Roshupkin / @jjjahson

09/22/2011 at 06:30AM

32
#22 - Justin Love / @wondible

09/23/2011 at 07:05PM

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

09/27/2011 at 09:50AM

32
#24 - Neal Lindsay / @neall

10/15/2011 at 03:31AM

32
#25 - Jer Wilson / @superjercom

10/28/2011 at 08:59AM

32
#26 - Andy Pincombe / @ampersandy

10/29/2011 at 09:44AM

32
#27 - Gabriel Barta / @gbarta

12/02/2011 at 02:27PM

32
#28 - Vasil Sakarov / @vsakarov

12/29/2011 at 04:19PM

32
#29 - oliver mueller / @marcontwit

01/21/2012 at 01:25PM

32
#30 - learninghang / @learninghang

04/14/2012 at 09:43AM

32
#31 - Alessandro Lisander / @wuiimu

01/05/2014 at 01:27PM

33
#32 - Hu Junfeng / @junfeng

09/01/2011 at 08:33AM

33
#33 - dtennant / @dtennant

09/16/2011 at 05:22PM

33
#34 - Matt Woelk / @MattWoelk

11/11/2011 at 07:36PM

34
#35 - Simon Scarfe / @simonscarfe

09/10/2011 at 12:44PM

34
#36 - Nonayo Biznast / @NonayoBiznast

09/11/2011 at 01:23AM

34
#37 - Shaun Skelton / @skeletalmonkey

09/11/2011 at 11:27PM

34
#38 - Scott Nielsen / @smniel

09/25/2011 at 11:31PM

34
#39 - Ethan Van den Berg / @showntome

10/14/2011 at 02:41PM

34
#40 - A / @tndrnt

12/11/2011 at 07:05PM

34
#41 - Kurt Gaastra / @KGaastra

02/11/2012 at 01:22AM

34
#42 - Kerson Hsiao / @KersonHsiao

07/18/2012 at 12:17PM

34
#43 - Drew Neil / @nelstrom

11/26/2012 at 10:16PM

34
#44 - Default default / @Fuck_default

05/07/2014 at 09:46AM

35
#45 - Christopher Erin / @Chris__Erin

09/20/2011 at 08:48PM

35
#46 - bmamax / @bmamax

01/13/2012 at 10:37PM

36
#47 - Theodore Finn Gast / @tfgast

09/01/2011 at 02:53AM

37
#48 - Mohammed / @mbadran

09/04/2011 at 02:56AM

37
#49 - Marcin Sza / @coot_

09/04/2011 at 03:32AM

37
#50 - Dario Cazzaro / @darioqa

09/17/2011 at 06:32PM

37
#51 - Mislav Marohnić / @mislav

12/06/2011 at 04:30PM

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

09/02/2011 at 04:59PM

38
#53 - Jesús Espino / @jespinog

09/07/2011 at 02:24PM

38
#54 - Rod Knowlton / @codelahoma

04/24/2012 at 06:23PM

38
#55 - Dave@Highgroove / @HighgrooveDave

05/22/2012 at 09:27PM

38
#56 - Son of Bongo / @bpcode

09/14/2012 at 02:18PM

38
#57 - cj / @cj01101

10/18/2013 at 10:42PM

39
#58 - Aviv Ben-Yosef / @avivby

09/02/2011 at 10:57AM

39
#59 - Malaney / @iamjh

09/02/2011 at 04:37PM

39
#60 - Dave / @zzdave13

09/02/2011 at 10:25PM

39
#61 - Ryan Menezes / @rydmen

09/20/2011 at 07:29AM

39
#62 - Ben Sherman / @bensherman

10/10/2011 at 04:41AM

39
#63 - murky-satyr / @m_satyr

10/12/2011 at 08:59AM

39
#64 - Jakub Arnold / @darthdeus

10/16/2011 at 03:51PM

39
#65 - Panino Matic / @paninomatik

10/27/2011 at 05:54PM

39
#66 - Travis Jeffery / @travisjeffery

11/17/2011 at 04:04AM

39
#67 - 9diov / @9diov

11/26/2011 at 02:53AM

39
#68 - Dan Herbert / @pocketninja_au

02/29/2012 at 01:46AM

39
#69 - Jonathan Lozinski / @jlozinski

04/21/2012 at 06:17PM

39
#70 - utopiah / @utopiah

06/10/2012 at 03:40PM

39
#71 - Joshua Draper / @JoshuaBDraper

05/25/2013 at 05:10PM

40
#72 - Sergi Sorribas / @lerovitch

09/15/2011 at 02:57PM

40
#73 - William Dunand / @wdunand

11/14/2011 at 08:47AM

41
#74 - Glen / @Glen_S

07/27/2012 at 03:16AM

42
#75 - Renat Aksitov / @Korvin79

02/11/2012 at 12:00PM

42
#76 - Oliver Christ / @0liverChrist

10/15/2013 at 09:22PM

42
#77 - Joonas Pihlajamaa / @jokkebk

02/26/2014 at 07:56AM

42
#78 - James / @Dronak

09/19/2014 at 10:45PM

43
#79 - Sam Burk / @smwbk

12/21/2013 at 09:50PM

44
#80 - Jean-Rene David / @jeanrenedavid

11/26/2011 at 01:07AM

44
#81 - Fabien Cazenave / @fabi1cazenave

02/16/2012 at 03:14PM

44
#82 - Gavin Rogers / @KC9KVQ

04/17/2012 at 07:07PM

51
#83 - Tim Tsu / @vimgolfpunk

09/01/2011 at 02:30PM

78
#84 - Viktor Jackson / @AntiStalinista

05/05/2012 at 07:48AM

90
#85 - Mike Roher / @mikeroher

04/23/2012 at 03:30PM

116
#86 - Justin Knag / @justinknag

09/03/2014 at 04:32PM

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

02/28/2012 at 03:51PM