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 4d1bfa8fb2c3e06468000127

Table Reshuffle

Fix the column order in this table... also append the new 'username' column.

Start file
smith,john,27
brown,bob,35
jones,steve,19
graham,phil,44
End file
27,john,smith,jsmith
35,bob,brown,bbrown
19,steve,jones,sjones
44,phil,graham,pgraham

View Diff

1,4c1,4
< smith,john,27
< brown,bob,35
< jones,steve,19
< graham,phil,44
---
> 27,john,smith,jsmith
> 35,bob,brown,bbrown
> 19,steve,jones,sjones
> 44,phil,graham,pgraham

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 84 remaining solutions by signing in and submitting your own entry
#85 Dave / @zzdave13 - Score: 40 - 07/31/11 @ 01:50
:%s/\v(.*),((.).*),(.*)/\4,\2,\1,\3\1<NL>ZZ

0 comments

#86 GiaNU / @sgianazza - Score: 40 - 02/04/12 @ 07:47
:%s/\v(.*),((.).*),(.*)/\4,\2,\1,\3\1<CR>ZZ

0 comments

#87 Felipe Jaramillo F / @mrfelipe - Score: 40 - 05/03/14 @ 10:32
:%s/\v(.*),((.).*),(.*)/\4,\2,\1,\3\1<CR>ZZ

0 comments

#88 Aviv Ben-Yosef / @avivby - Score: 41 - 12/29/10 @ 23:21
:%s/\v(.*),((.).*),(.*)/\4,\2,\1,\3\1/<CR>ZZ

0 comments

#89 William Shackleton / @wshackleton - Score: 43 - 01/02/11 @ 07:59
qq^wd2w$p^d2wA,<Esc>ppxbbpjq3@qrpkrskhhrbklrjZZ

0 comments

#90 Francisco Dibar / @frandibar - Score: 43 - 01/10/11 @ 20:50
:%s/\v(.*),(\w)(.*),(.*)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

#91 Lajos Koszti / @Ajnasz - Score: 45 - 08/23/11 @ 08:22
:%s/\v(\w+),((\w)\w+),(\d+)/\4,\2,\1,\3\1/<CR>ZZ

0 comments

#92 Rémi Prévost / @remi - Score: 46 - 12/29/10 @ 19:33
:%s/\v(\w+),(\w)(\w+),(\d+)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

#93 Peter Anselmo / @peter_anselmo - Score: 46 - 01/02/11 @ 21:49
:%s/\v(\w+),(\w)(\w+),(\d+)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

#94 drio / @drio - Score: 46 - 01/07/11 @ 06:30
:%s/\v(\w+),(\w)(\w+),(\d+)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

#95 Toto l'haricot / @nico_le_terribl - Score: 46 - 01/09/11 @ 14:02
:%s/\(.*\),\(\(.\).*\),\(.*\)/\4,\2,\1,\3\1<CR>ZZ

0 comments

#96 Arto Vuori / @dhpe - Score: 49 - 09/01/12 @ 12:21
qq$diw0Pa,<Esc>$dT,2F,pa,<Esc>b"oyl2w"pyw$x"op"ppj0q3@qZZ

0 comments

#97 Juan C. Muller / @juancmuller - Score: 50 - 12/30/10 @ 19:24
:%s/\(.\+\),\(.\)\(.\+,\)\(..\)/\4,\2\3\1,\2\1/<CR>ZZ

0 comments

#98 Marc Simonin / @TheGnorf - Score: 53 - 12/30/10 @ 06:04
:%s/^\(.\+\),\(.\)\(.\+\),\(.\+\)/\4,\2\3,\1,\2\1/<CR>ZZ

0 comments

#99 David Lam / @lamdk - Score: 53 - 01/01/11 @ 23:57
:%s/\(\w*\),\(.\)\(\w*\),\(\d*\)/\4,\2\3,\1,\2\1/g<CR>ZZ

0 comments

#100 Soliman Sylvain / @sylvain_soliman - Score: 60 - 12/30/10 @ 10:46
:%s/\(\w*\),\(\w\)\(\w*\),\(..\)/\4,\2\3;<BS>,\&<BS>1,\2\1/<CR>ZZ

0 comments

#101 Przemysław Pawełczyk / @przemoc86 - Score: 62 - 12/30/10 @ 11:50
:%s/\([^,]*\),\([^,]\?\)\([^,]*\),\([^,]*\)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

#102 Tien Le / @tienlex - Score: 68 - 12/31/10 @ 08:17
:%s/\(.*\),\(.*\),\(\d*\)/\3,\2,\1,\1/<CR>qq3lyl4wPq3G@qk@qu:2<CR>@qgg@qZZ

0 comments

#103 Benjamin Small / @ph1g - Score: 78 - 12/29/10 @ 19:27
<fd-35>:%s/^\(.\)\([^,]\+\),\(.\)\([^,]\+\),\([0-9]\+\)/\5,\3\4,\1\2,\3\1\2/g<CR>:wq<CR>

0 comments

#104 raj / @rajlekkala - Score: 93 - 12/30/10 @ 02:29
\d4di27,john,smith,jsmith<CR>35,bob,brown,bbrown<CR>19,steve,jones,sjones<CR>44,phil,graham,pgraham<Esc>ZZ

0 comments

#105 cracoucax / @cracoucax - Score: 354 - 12/30/10 @ 02:44
<Left><Down><Down><Down><Down><Up><Up><Up><Down><Down><Down><Down><Left><Left><Left><Left><Left><Left><Up><Up><Up>i<Left><Left><Left><Esc><Down><Down><Down><Down><Down><Up><Up><Up><Up><Up><Up><Up><Up>f,;<Right>D^^Pa,<Esc>Ajsmith<Esc>jbD^^Pa,<Esc>Abbron<BS>wn<Esc>jbD^^Pa,<Esc>Asjones<Esc><Up><Up><Up><Down><Down><Down>vbb<Esc><Esc><Right>D^^Pa,<Esc>Apgraham<Esc>bbbdb<Esc>udbxwlPxigrapham,<Esc><Up>bbdf,bbP<Up><Right>df,bbP<Up>w<Right>df,bbP<Down><Down><Down><Down><Up><Up><Up><Up><Down><Down><Down><Right><Right><Right><Right>x<Right><Right><Right><Right><Right><Right><Right><Right><Right>:w<CR>:wq<CR>

0 comments

Created by: @bjjwillis

105 active golfers, 287 entries

Leaderboard (lowest score wins):
Q6hrg93p4r3hn56thmd0_normal
22
#1 - Urtica dioica / @udioica

06/11/2012 at 03:41PM

40051_789281885907_29616532_44170636_2091417_n_normal
22
#2 - Conner McDaniel / @connermcd

09/18/2012 at 09:18PM

7bbd949b345fcbcfd812b231aed89f99_normal
22
#3 - Marco Hinz / @_mhinz_

05/28/2013 at 04:02AM

C03379cfc45779330be3bcac5223b397_normal
22
#4 - ynwsoft / @ynwsoft

12/25/2013 at 06:10AM

Johnjohn_normal
22
#5 - John Braxler / @braxler

05/23/2014 at 06:16AM

Ewbdmdtg_normal
23
#6 - Tim Chase / @gumnos

01/18/2011 at 07:32AM

Fepic_normal
23
#7 - Federico Galassi / @federicogalassi

01/20/2011 at 12:49AM

4_normal
23
#8 - Oleg Roshupkin / @jjjahson

01/20/2011 at 10:59PM

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

01/23/2011 at 06:10AM

Gravatar_normal
23
#10 - Stephen Morrow / @yawmark

01/26/2011 at 05:57AM

Image_normal
23
#11 - Antony Scriven / @antonyscriven

02/10/2011 at 11:01AM

Untitled_normal
23
#12 - vg / @vimgolfer

02/26/2011 at 10:38AM

122_normal
23
#13 - not so punk :] / @notsopunk

06/19/2011 at 04:45AM

Avatar-small_normal
23
#14 - Hu Junfeng / @hujunfeng

07/19/2011 at 02:13AM

Default_profile_6_normal
23
#15 - William Dunand / @wdunand

11/30/2011 at 04:20PM

Gintoki_normal
23
#16 - You-Siang Lin / @yslinnctu

12/01/2011 at 04:04PM

Dsc_3301.redimensionado_normal
23
#17 - Jaime A. Sánchez / @jashbeta

12/21/2011 at 09:15PM

Default_profile_2_normal
23
#18 - Renat Aksitov / @Korvin79

02/16/2012 at 04:38AM

Mobile_photo_mar_15__2010_12_39_49_normal
23
#19 - Rod Knowlton / @codelahoma

06/04/2012 at 05:10PM

Af3be16bb6a6dc7c7061fecdcf97d56b_normal
23
#20 - Vim rocks / @vimrocks

10/08/2012 at 02:56PM

Default_profile_1_normal
23
#21 - a24f0600 / @a24f0600

01/24/2013 at 01:46AM

0e620322b2c292d069fe93e27c081f9c_normal
23
#22 - Petro Тrouq / @zulolosi

08/31/2013 at 11:59AM

Desktophintergrund03_normal
23
#23 - Zapata / @Incredible_JFP

05/06/2014 at 07:22AM

Me-small_normal
24
#24 - Wei Dai / @clvv42

01/01/2011 at 06:09AM

The-milky-way-mardi-khola-007_normal
24
#25 - Ujjwol Lamichhane / @Ujjwol

01/06/2011 at 05:56AM

Default_profile_1_normal
24
#26 - Hubba / @HubbaBubbaFett

12/26/2012 at 05:20AM

08jqb4rz_normal
24
#27 - Yann Moisan / @YannMoisan

01/25/2013 at 07:47AM

4654945923_eb2c60ee5f_normal
26
#28 - Kerson Hsiao / @KersonHsiao

08/02/2012 at 06:33PM

7bbc92500a24e0892967c51a50f1ff8e_normal
27
#29 - Tyler / @tylerbindon

04/01/2013 at 10:15PM

Photo_on_2010-07-30_at_17.36__2_normal
28
#30 - Brad / @bjjwillis

12/30/2010 at 12:46AM

Pi2_normal
28
#31 - Utkarsh Kukreti / @utkarshkukreti

12/30/2010 at 01:16AM

Daruma_normal
28
#32 - Fer Enaf / @0x00C0FFEE

12/30/2010 at 05:07AM

Avatar1_450x450_normal
28
#33 - Dmytro Shteflyuk / @kpumuk

12/30/2010 at 09:40PM

E_normal
28
#34 - Vincent Isambart / @vincentisambart

12/31/2010 at 11:11PM

Fotos-0259_normal
28
#35 - ls lahrs / @lslah

01/04/2011 at 11:33AM

Jlove201003sq_normal
28
#36 - Justin Love / @wondible

06/21/2011 at 07:24AM

Image1326661166_normal
28
#37 - Christopher Brew / @Seph1rothVII

01/25/2012 at 01:57PM

Bc879469f279ee24b7fbdfad7c2216d9_normal
28
#38 - 無ん垢の叫び / @john_ababa

03/13/2012 at 12:32AM

264327_10150230576896345_729061344_7523848_5517118_n_normal
28
#39 - Nolen Royalty / @NolenRoyalty

04/20/2012 at 07:22PM

Netti_pihlajo1_lthumb_normal
28
#40 - Joonas Pihlajamaa / @jokkebk

02/21/2014 at 07:58AM

Photo_on_10-21-11_at_1.03_pm__2_normal
29
#41 - Austin Taylor / @austintaylor

12/29/2010 at 08:55PM

Face_icon_normal
29
#42 - Akira Matsuda / @a_matsuda

12/30/2010 at 11:21AM

Adept_normal
29
#43 - Balkoth / @_Balkoth_

12/31/2010 at 08:37AM

Dude2_normal
29
#44 - Eivind Jahren / @HaskellElephant

01/14/2011 at 02:41PM

X_normal
29
#45 - xhtmlforum / @xhtmlforum

01/25/2011 at 02:42AM

Avatar_normal
29
#46 - Øystein Walle / @oysteinwalle

07/11/2011 at 01:34AM

Gravatar_normal
29
#47 - Jesús Espino / @jespinog

09/05/2011 at 03:18PM

Av_normal
29
#48 - Vasil Sakarov / @vsakarov

01/17/2012 at 01:24PM

Default_profile_3_normal
30
#49 - Mike Plotz / @antisuji

12/29/2010 at 07:33PM

Image_normal
30
#50 - Josh Weinberg / @jcweinberg

12/29/2010 at 07:44PM

Me.resized_normal
30
#51 - Addisu Taddese / @azeey

12/30/2010 at 02:16AM

South_park_384x384_normal
30
#52 - Adam Pohorecki / @apohorecki

12/30/2010 at 05:05AM

Jimavatar_normal
30
#53 - Jim Garvin / @coderifous

12/30/2010 at 01:19PM

Default_profile_0_normal
30
#54 - Mattiassich Ákos / @mattiassicha

01/16/2011 at 06:06AM

A_normal
30
#55 - Wesley Wong / @wesleymwwong

01/30/2011 at 03:08AM

Andrey_ugolnik_180x180_normal
31
#56 - Andrey A. Ugolnik / @andreyugolnik

01/19/2011 at 02:05PM

Default_profile_5_normal
32
#57 - Pierre / @Pihour

01/01/2011 at 03:42AM

Avatar2-80_normal
32
#58 - Kim Silkebækken / @Lokaltog

01/04/2011 at 11:35AM

Default_profile_5_normal
32
#59 - t_lini / @t_lini

01/09/2011 at 09:20AM

Default_profile_5_normal
32
#60 - cj / @cj01101

10/24/2013 at 10:24AM

Default_profile_3_normal
33
#61 - greg / @kongo2002

12/30/2010 at 04:00PM

Vcwwccib_normal
33
#62 - Pete Johns / @johnsyweb

01/02/2011 at 02:40AM

Sup-av_normal
33
#63 - Ian McCowan / @valrus

05/29/2011 at 06:20PM

Me_normal
33
#64 - Jim Infield / @jinfield

07/21/2011 at 12:35PM

Default_profile_1_normal
33
#65 - Andrey Ivanov / @Bytamine

08/15/2011 at 08:24AM

Untitled_2_normal
34
#66 -  Ikhsan Maulana / @ixandidu

12/29/2010 at 09:59PM

Gravatar_normal
34
#67 - Asmund Liseth / @Asmund_L

12/30/2010 at 10:23AM

1e5d44dae775852cfa4dedd79f3b2697_normal
34
#68 - Michael Kummer / @randompast

07/06/2013 at 11:05AM

Bunnies_normal
36
#69 - Trevor Powell / @DoomedBunnies

11/29/2011 at 08:14PM

3ubh7kcfj18s5m9erc6p_normal
36
#70 - Marcin Sza / @coot_

12/05/2012 at 12:22PM

Default_profile_2_normal
36
#71 - Oliver Christ / @0liverChrist

11/11/2013 at 09:05AM

Default_profile_0_normal
36
#72 - Ram Tamtam / @ramtamtamtam

07/04/2014 at 06:34AM

Default_profile_1_normal
38
#73 - Ankit Shankar / @thelastnode

12/29/2010 at 10:33PM

Ca61e4e5-4da1-4966-8687-97967e92ff76_normal
38
#74 - Ben Lenarts / @benlenarts

12/30/2010 at 03:57AM

Y1p4714jfgqbxwbk3xwedazq_2xf63nvvd0ebkioosczy777c2b3wruhnx0ipmlbxcuuhba2em5yik01eowh6yexq_normal
38
#75 - ise0615 / @ise0615

05/25/2012 at 11:10AM

Shiraseon3_normal
39
#76 - Douglas Stockwell / @dstockwell

12/29/2010 at 08:46PM

48983_1546896881_9578_q_normal
39
#77 - Kevin Merlin / @mp3merlin

12/30/2010 at 03:17AM

Me--subway_normal
39
#78 - Will Gray / @graywh

12/31/2010 at 04:32PM

Default_profile_4_normal
39
#79 - johnny / @johnnychm

01/01/2011 at 11:42AM

3d3c391e6138cd35b9f45402fb5b08a1_normal
40
#80 - Behnam Esfahbod / @zwnj

12/30/2010 at 01:58AM

Dan_in_white_shirt_normal
40
#81 - Dan Dorman / @dandorman

12/30/2010 at 03:01PM

Default_profile_5_normal
40
#82 - David / @ddddddddavid

12/30/2010 at 08:18PM

Default_profile_1_normal
40
#83 - Edwin Merkled / @emacs_viper

01/05/2011 at 12:25PM

Foo-berk_normal
40
#84 - mightyfoo / @mightyfoo

05/26/2011 at 08:21AM

Uwe_horns_by_joao_normal
40
#85 - Dave / @zzdave13

07/31/2011 at 01:50AM

Eightbit-6a59ed58-c85a-4332-b791-dd9f8c0a0a27_normal
40
#86 - GiaNU / @sgianazza

02/04/2012 at 07:47AM

Img_8822f_normal
40
#87 - Felipe Jaramillo F / @mrfelipe

05/03/2014 at 10:32AM

Aviv_normal
41
#88 - Aviv Ben-Yosef / @avivby

12/29/2010 at 11:21PM

Default_profile_6_normal
43
#89 - William Shackleton / @wshackleton

01/02/2011 at 07:59AM

Default_profile_6_normal
43
#90 - Francisco Dibar / @frandibar

01/10/2011 at 08:50PM

En-face_normal
45
#91 - Lajos Koszti / @Ajnasz

08/23/2011 at 08:22AM

6k8jmjinqt8g6n5q24kd_normal
46
#92 - Rémi Prévost / @remi

12/29/2010 at 07:33PM

Rti70_normal
46
#93 - Peter Anselmo / @peter_anselmo

01/02/2011 at 09:49PM

29ed1f20888463b3b72bd9fed88a79b8_normal
46
#94 - drio / @drio

01/07/2011 at 06:30AM

Default_profile_1_normal
46
#95 - Toto l'haricot / @nico_le_terribl

01/09/2011 at 02:02PM

500daa18db33d9585335c991451ba992_normal
49
#96 - Arto Vuori / @dhpe

09/01/2012 at 12:21PM

Img_0830_normal
50
#97 - Juan C. Muller / @juancmuller

12/30/2010 at 07:24PM

Default_profile_6_normal
53
#98 - Marc Simonin / @TheGnorf

12/30/2010 at 06:04AM

Default_profile_2_normal
53
#99 - David Lam / @lamdk

01/01/2011 at 11:57PM

08ed5cbe-a2d2-4503-9503-63d2236b1fba_normal
60
#100 - Soliman Sylvain / @sylvain_soliman

12/30/2010 at 10:46AM

Default_profile_3_normal
62
#101 - Przemysław Pawełczyk / @przemoc86

12/30/2010 at 11:50AM

Img_04912_normal
68
#102 - Tien Le / @tienlex

12/31/2010 at 08:17AM

Image_normal
78
#103 - Benjamin Small / @ph1g

12/29/2010 at 07:27PM

Dsc00032small_normal
93
#104 - raj / @rajlekkala

12/30/2010 at 02:29AM

Default_profile_3_normal
354
#105 - cracoucax / @cracoucax

12/30/2010 at 02:44AM