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 James / @Dronak - Score: 41 - 09/20/14 @ 20:21
qq4wdwI<C-R>",<Esc>ldf,A<C-R>"<C-R>"<BS><Esc>3F,ly 4wi<C-R>"<Esc>+q3@qZZ

0 comments

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

0 comments

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

0 comments

#92 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

#93 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

#94 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

#95 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

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

0 comments

#97 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

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

0 comments

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

0 comments

#100 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

#101 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

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

0 comments

#103 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

#104 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

#105 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

#106 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

106 active golfers, 288 entries

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

06/11/2012 at 03:41PM

22
#2 - Conner McDaniel / @connermcd

09/18/2012 at 09:18PM

22
#3 - Marco Hinz / @_mhinz_

05/28/2013 at 04:02AM

22
#4 - ynwsoft / @ynwsoft

12/25/2013 at 06:10AM

22
#5 - John Braxler / @braxler

05/23/2014 at 06:16AM

23
#6 - Tim Chase / @gumnos

01/18/2011 at 07:32AM

23
#7 - Federico Galassi / @federicogalassi

01/20/2011 at 12:49AM

23
#8 - Oleg Roshupkin / @jjjahson

01/20/2011 at 10:59PM

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

01/23/2011 at 06:10AM

23
#10 - Stephen Morrow / @yawmark

01/26/2011 at 05:57AM

23
#11 - Antony Scriven / @antonyscriven

02/10/2011 at 11:01AM

23
#12 - vg / @vimgolfer

02/26/2011 at 10:38AM

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

06/19/2011 at 04:45AM

23
#14 - Hu Junfeng / @junfeng

07/19/2011 at 02:13AM

23
#15 - William Dunand / @wdunand

11/30/2011 at 04:20PM

23
#16 - You-Siang Lin / @yslinnctu

12/01/2011 at 04:04PM

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

12/21/2011 at 09:15PM

23
#18 - Renat Aksitov / @Korvin79

02/16/2012 at 04:38AM

23
#19 - Rod Knowlton / @codelahoma

06/04/2012 at 05:10PM

23
#20 - Vim rocks / @vimrocks

10/08/2012 at 02:56PM

23
#21 - a24f0600 / @a24f0600

01/24/2013 at 01:46AM

23
#22 - Petro Тrouq / @zulolosi

08/31/2013 at 11:59AM

23
#23 - Zapata / @Incredible_JFP

05/06/2014 at 07:22AM

24
#24 - Wei Dai / @clvv42

01/01/2011 at 06:09AM

24
#25 - Ujjwol Lamichhane / @Ujjwol

01/06/2011 at 05:56AM

24
#26 - Hubba / @HubbaBubbaFett

12/26/2012 at 05:20AM

24
#27 - Yann Moisan / @YannMoisan

01/25/2013 at 07:47AM

26
#28 - Kerson Hsiao / @KersonHsiao

08/02/2012 at 06:33PM

27
#29 - Tyler / @tylerbindon

04/01/2013 at 10:15PM

28
#30 - Brad / @bjjwillis

12/30/2010 at 12:46AM

28
#31 - Utkarsh Kukreti / @utkarshkukreti

12/30/2010 at 01:16AM

28
#32 - Fer Enaf / @0x00C0FFEE

12/30/2010 at 05:07AM

28
#33 - Dmytro Shteflyuk / @kpumuk

12/30/2010 at 09:40PM

28
#34 - Vincent Isambart / @vincentisambart

12/31/2010 at 11:11PM

28
#35 - ls lahrs / @lslah

01/04/2011 at 11:33AM

28
#36 - Justin Love / @wondible

06/21/2011 at 07:24AM

28
#37 - Christopher Brew / @Seph1rothVII

01/25/2012 at 01:57PM

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

03/13/2012 at 12:32AM

28
#39 - Nolen Royalty / @NolenRoyalty

04/20/2012 at 07:22PM

28
#40 - Joonas Pihlajamaa / @jokkebk

02/21/2014 at 07:58AM

29
#41 - Austin Taylor / @austintaylor

12/29/2010 at 08:55PM

29
#42 - Akira Matsuda / @a_matsuda

12/30/2010 at 11:21AM

29
#43 - Balkoth / @_Balkoth_

12/31/2010 at 08:37AM

29
#44 - Eivind Jahren / @HaskellElephant

01/14/2011 at 02:41PM

29
#45 - xhtmlforum / @xhtmlforum

01/25/2011 at 02:42AM

29
#46 - Øystein Walle / @oysteinwalle

07/11/2011 at 01:34AM

29
#47 - Jesús Espino / @jespinog

09/05/2011 at 03:18PM

29
#48 - Vasil Sakarov / @vsakarov

01/17/2012 at 01:24PM

30
#49 - Mike Plotz / @antisuji

12/29/2010 at 07:33PM

30
#50 - Josh Weinberg / @jcweinberg

12/29/2010 at 07:44PM

30
#51 - Addisu Taddese / @azeey

12/30/2010 at 02:16AM

30
#52 - Adam Pohorecki / @apohorecki

12/30/2010 at 05:05AM

30
#53 - Jim Garvin / @coderifous

12/30/2010 at 01:19PM

30
#54 - Mattiassich Ákos / @mattiassicha

01/16/2011 at 06:06AM

30
#55 - Wesley Wong / @wesleymwwong

01/30/2011 at 03:08AM

31
#56 - Andrey A. Ugolnik / @andreyugolnik

01/19/2011 at 02:05PM

32
#57 - Pierre / @Pihour

01/01/2011 at 03:42AM

32
#58 - Kim Silkebækken / @Lokaltog

01/04/2011 at 11:35AM

32
#59 - t_lini / @t_lini

01/09/2011 at 09:20AM

32
#60 - cj / @cj01101

10/24/2013 at 10:24AM

33
#61 - greg / @kongo2002

12/30/2010 at 04:00PM

33
#62 - Pete Johns / @johnsyweb

01/02/2011 at 02:40AM

33
#63 - Ian McCowan / @valrus

05/29/2011 at 06:20PM

33
#64 - Jim Infield / @jinfield

07/21/2011 at 12:35PM

33
#65 - Andrey Ivanov / @Bytamine

08/15/2011 at 08:24AM

34
#66 -  Ikhsan Maulana / @ixandidu

12/29/2010 at 09:59PM

34
#67 - Asmund Liseth / @Asmund_L

12/30/2010 at 10:23AM

34
#68 - Michael Kummer / @randompast

07/06/2013 at 11:05AM

36
#69 - Trevor Powell / @DoomedBunnies

11/29/2011 at 08:14PM

36
#70 - Marcin Sza / @coot_

12/05/2012 at 12:22PM

36
#71 - Oliver Christ / @0liverChrist

11/11/2013 at 09:05AM

36
#72 - Ram Tamtam / @ramtamtamtam

07/04/2014 at 06:34AM

38
#73 - Ankit Shankar / @thelastnode

12/29/2010 at 10:33PM

38
#74 - Ben Lenarts / @benlenarts

12/30/2010 at 03:57AM

38
#75 - ise0615 / @ise0615

05/25/2012 at 11:10AM

39
#76 - Douglas Stockwell / @dstockwell

12/29/2010 at 08:46PM

39
#77 - Kevin Merlin / @mp3merlin

12/30/2010 at 03:17AM

39
#78 - Will Gray / @graywh

12/31/2010 at 04:32PM

39
#79 - johnny / @johnnychm

01/01/2011 at 11:42AM

40
#80 - Behnam Esfahbod / @zwnj

12/30/2010 at 01:58AM

40
#81 - Dan Dorman / @dandorman

12/30/2010 at 03:01PM

40
#82 - David / @ddddddddavid

12/30/2010 at 08:18PM

40
#83 - Edwin Merkled / @emacs_viper

01/05/2011 at 12:25PM

40
#84 - mightyfoo / @mightyfoo

05/26/2011 at 08:21AM

40
#85 - Dave / @zzdave13

07/31/2011 at 01:50AM

40
#86 - GiaNU / @sgianazza

02/04/2012 at 07:47AM

40
#87 - Felipe Jaramillo F / @mrfelipe

05/03/2014 at 10:32AM

41
#88 - Aviv Ben-Yosef / @avivby

12/29/2010 at 11:21PM

41
#89 - James / @Dronak

09/20/2014 at 08:21PM

43
#90 - William Shackleton / @wshackleton

01/02/2011 at 07:59AM

43
#91 - Francisco Dibar / @frandibar

01/10/2011 at 08:50PM

45
#92 - Lajos Koszti / @Ajnasz

08/23/2011 at 08:22AM

46
#93 - Rémi Prévost / @remi

12/29/2010 at 07:33PM

46
#94 - Peter Anselmo / @peter_anselmo

01/02/2011 at 09:49PM

46
#95 - drio / @drio

01/07/2011 at 06:30AM

46
#96 - Toto l'haricot / @nico_le_terribl

01/09/2011 at 02:02PM

49
#97 - Arto Vuori / @dhpe

09/01/2012 at 12:21PM

50
#98 - Juan C. Muller / @juancmuller

12/30/2010 at 07:24PM

53
#99 - Marc Simonin / @TheGnorf

12/30/2010 at 06:04AM

53
#100 - David Lam / @lamdk

01/01/2011 at 11:57PM

60
#101 - Soliman Sylvain / @sylvain_soliman

12/30/2010 at 10:46AM

62
#102 - Przemysław Pawełczyk / @przemoc86

12/30/2010 at 11:50AM

68
#103 - Tien Le / @tienlex

12/31/2010 at 08:17AM

78
#104 - Benjamin Small / @ph1g

12/29/2010 at 07:27PM

93
#105 - raj / @rajlekkala

12/30/2010 at 02:29AM

354
#106 - cracoucax / @cracoucax

12/30/2010 at 02:44AM