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 @ 08:50
:%s/\v(.*),((.).*),(.*)/\4,\2,\1,\3\1<NL>ZZ

0 comments

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

0 comments

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

0 comments

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

0 comments

#89 James / @Dronak - Score: 41 - 09/21/14 @ 03: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 @ 15:59
qq^wd2w$p^d2wA,<Esc>ppxbbpjq3@qrpkrskhhrbklrjZZ

0 comments

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

0 comments

#92 Lajos Koszti / @Ajnasz - Score: 45 - 08/23/11 @ 15: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/30/10 @ 03: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/03/11 @ 05: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 @ 14: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 @ 22:02
:%s/\(.*\),\(\(.\).*\),\(.*\)/\4,\2,\1,\3\1<CR>ZZ

0 comments

#97 Arto Vuori / @dhpe - Score: 49 - 09/01/12 @ 19: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/31/10 @ 03:24
:%s/\(.\+\),\(.\)\(.\+,\)\(..\)/\4,\2\3\1,\2\1/<CR>ZZ

0 comments

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

0 comments

#100 David Lam / @lamdk - Score: 53 - 01/02/11 @ 07: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 @ 18: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 @ 19:50
:%s/\([^,]*\),\([^,]\?\)\([^,]*\),\([^,]*\)/\4,\2\3,\1,\2\1<CR>ZZ

0 comments

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

0 comments

#104 Benjamin Small / @ph1g - Score: 78 - 12/30/10 @ 03:27
:%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 @ 10: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 @ 10: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 10:41PM

22
#2 - Conner McDaniel / @connermcd

09/19/2012 at 04:18AM

22
#3 - Marco Hinz / @_mhinz_

05/28/2013 at 11:02AM

22
#4 - ynwsoft / @ynwsoft

12/25/2013 at 02:10PM

22
#5 - John Braxler / @braxler

05/23/2014 at 01:16PM

23
#6 - Tim Chase / @gumnos

01/18/2011 at 03:32PM

23
#7 - Federico Galassi / @federicogalassi

01/20/2011 at 08:49AM

23
#8 - Oleg Roshupkin / @jjjahson

01/21/2011 at 06:59AM

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

01/23/2011 at 02:10PM

23
#10 - Stephen Morrow / @yawmark

01/26/2011 at 01:57PM

23
#11 - Antony Scriven / @antonyscriven

02/10/2011 at 07:01PM

23
#12 - vg / @vimgolfer

02/26/2011 at 06:38PM

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

06/19/2011 at 11:45AM

23
#14 - Hu Junfeng / @junfeng

07/19/2011 at 09:13AM

23
#15 - William Dunand / @wdunand

12/01/2011 at 12:20AM

23
#16 - You-Siang Lin / @yslinnctu

12/02/2011 at 12:04AM

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

12/22/2011 at 05:15AM

23
#18 - Renat Aksitov / @Korvin79

02/16/2012 at 12:38PM

23
#19 - Rod Knowlton / @codelahoma

06/05/2012 at 12:10AM

23
#20 - Vim rocks / @vimrocks

10/08/2012 at 09:56PM

23
#21 - a24f0600 / @a24f0600

01/24/2013 at 09:46AM

23
#22 - Petro Тrouq / @zulolosi

08/31/2013 at 06:59PM

23
#23 - Zapata / @Incredible_JFP

05/06/2014 at 02:22PM

24
#24 - Wei Dai / @clvv42

01/01/2011 at 02:09PM

24
#25 - Ujjwol Lamichhane / @Ujjwol

01/06/2011 at 01:56PM

24
#26 - Hubba / @HubbaBubbaFett

12/26/2012 at 01:20PM

24
#27 - Yann Moisan / @YannMoisan

01/25/2013 at 03:47PM

26
#28 - Kerson Hsiao / @KersonHsiao

08/03/2012 at 01:33AM

27
#29 - Tyler / @tylerbindon

04/02/2013 at 05:15AM

28
#30 - Brad / @bjjwillis

12/30/2010 at 08:46AM

28
#31 - Utkarsh Kukreti / @utkarshkukreti

12/30/2010 at 09:16AM

28
#32 - Fer Enaf / @0x00C0FFEE

12/30/2010 at 01:07PM

28
#33 - Dmytro Shteflyuk / @kpumuk

12/31/2010 at 05:40AM

28
#34 - Vincent Isambart / @vincentisambart

01/01/2011 at 07:11AM

28
#35 - ls lahrs / @lslah

01/04/2011 at 07:33PM

28
#36 - Justin Love / @wondible

06/21/2011 at 02:24PM

28
#37 - Christopher Brew / @Seph1rothVII

01/25/2012 at 09:57PM

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

03/13/2012 at 07:32AM

28
#39 - Nolen Royalty / @NolenRoyalty

04/21/2012 at 02:22AM

28
#40 - Joonas Pihlajamaa / @jokkebk

02/21/2014 at 03:58PM

29
#41 - Austin Taylor / @austintaylor

12/30/2010 at 04:55AM

29
#42 - Akira Matsuda / @a_matsuda

12/30/2010 at 07:21PM

29
#43 - Balkoth / @_Balkoth_

12/31/2010 at 04:37PM

29
#44 - Eivind Jahren / @HaskellElephant

01/14/2011 at 10:41PM

29
#45 - xhtmlforum / @xhtmlforum

01/25/2011 at 10:42AM

29
#46 - Øystein Walle / @oysteinwalle

07/11/2011 at 08:34AM

29
#47 - Jesús Espino / @jespinog

09/05/2011 at 10:18PM

29
#48 - Vasil Sakarov / @vsakarov

01/17/2012 at 09:24PM

30
#49 - Mike Plotz / @antisuji

12/30/2010 at 03:33AM

30
#50 - Josh Weinberg / @jcweinberg

12/30/2010 at 03:44AM

30
#51 - Addisu Taddese / @azeey

12/30/2010 at 10:16AM

30
#52 - Adam Pohorecki / @apohorecki

12/30/2010 at 01:05PM

30
#53 - Jim Garvin / @coderifous

12/30/2010 at 09:19PM

30
#54 - Mattiassich Ákos / @mattiassicha

01/16/2011 at 02:06PM

30
#55 - Wesley Wong / @wesleymwwong

01/30/2011 at 11:08AM

31
#56 - Andrey A. Ugolnik / @andreyugolnik

01/19/2011 at 10:05PM

32
#57 - Pierre / @Pihour

01/01/2011 at 11:42AM

32
#58 - Kim Silkebækken / @Lokaltog

01/04/2011 at 07:35PM

32
#59 - t_lini / @t_lini

01/09/2011 at 05:20PM

32
#60 - cj / @cj01101

10/24/2013 at 05:24PM

33
#61 - greg / @kongo2002

12/31/2010 at 12:00AM

33
#62 - Pete Johns / @johnsyweb

01/02/2011 at 10:40AM

33
#63 - Ian McCowan / @valrus

05/30/2011 at 01:20AM

33
#64 - Jim Infield / @jinfield

07/21/2011 at 07:35PM

33
#65 - Andrey Ivanov / @Bytamine

08/15/2011 at 03:24PM

34
#66 -  Ikhsan Maulana / @ixandidu

12/30/2010 at 05:59AM

34
#67 - Asmund Liseth / @Asmund_L

12/30/2010 at 06:23PM

34
#68 - Michael Kummer / @randompast

07/06/2013 at 06:05PM

36
#69 - Trevor Powell / @DoomedBunnies

11/30/2011 at 04:14AM

36
#70 - Marcin Sza / @coot_

12/05/2012 at 08:22PM

36
#71 - Oliver Christ / @0liverChrist

11/11/2013 at 05:05PM

36
#72 - Ram Tamtam / @ramtamtamtam

07/04/2014 at 01:34PM

38
#73 - Ankit Shankar / @thelastnode

12/30/2010 at 06:33AM

38
#74 - Ben Lenarts / @benlenarts

12/30/2010 at 11:57AM

38
#75 - ise0615 / @ise0615

05/25/2012 at 06:10PM

39
#76 - Douglas Stockwell / @dstockwell

12/30/2010 at 04:46AM

39
#77 - Kevin Merlin / @mp3merlin

12/30/2010 at 11:17AM

39
#78 - Will Gray / @graywh

01/01/2011 at 12:32AM

39
#79 - johnny / @johnnychm

01/01/2011 at 07:42PM

40
#80 - Behnam Esfahbod / @zwnj

12/30/2010 at 09:58AM

40
#81 - Dan Dorman / @dandorman

12/30/2010 at 11:01PM

40
#82 - David / @ddddddddavid

12/31/2010 at 04:18AM

40
#83 - Edwin Merkled / @emacs_viper

01/05/2011 at 08:25PM

40
#84 - mightyfoo / @mightyfoo

05/26/2011 at 03:21PM

40
#85 - Dave / @zzdave13

07/31/2011 at 08:50AM

40
#86 - GiaNU / @sgianazza

02/04/2012 at 03:47PM

40
#87 - Felipe Jaramillo F / @mrfelipe

05/03/2014 at 05:32PM

41
#88 - Aviv Ben-Yosef / @avivby

12/30/2010 at 07:21AM

41
#89 - James / @Dronak

09/21/2014 at 03:21AM

43
#90 - William Shackleton / @wshackleton

01/02/2011 at 03:59PM

43
#91 - Francisco Dibar / @frandibar

01/11/2011 at 04:50AM

45
#92 - Lajos Koszti / @Ajnasz

08/23/2011 at 03:22PM

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

12/30/2010 at 03:33AM

46
#94 - Peter Anselmo / @peter_anselmo

01/03/2011 at 05:49AM

46
#95 - drio / @drio

01/07/2011 at 02:30PM

46
#96 - Toto l'haricot / @nico_le_terribl

01/09/2011 at 10:02PM

49
#97 - Arto Vuori / @dhpe

09/01/2012 at 07:21PM

50
#98 - Juan C. Muller / @juancmuller

12/31/2010 at 03:24AM

53
#99 - Marc Simonin / @TheGnorf

12/30/2010 at 02:04PM

53
#100 - David Lam / @lamdk

01/02/2011 at 07:57AM

60
#101 - Soliman Sylvain / @sylvain_soliman

12/30/2010 at 06:46PM

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

12/30/2010 at 07:50PM

68
#103 - Tien Le / @tienlex

12/31/2010 at 04:17PM

78
#104 - Benjamin Small / @ph1g

12/30/2010 at 03:27AM

93
#105 - raj / @rajlekkala

12/30/2010 at 10:29AM

354
#106 - cracoucax / @cracoucax

12/30/2010 at 10:44AM