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 508fe9f57acca60002000037

Stairs Indenting

Indent each line with <line number> whitespaces.

Start file
1
2
3
4
5
6
7
8
9
10
End file
 1
  2
   3
    4
     5
      6
       7
        8
         9
          10

View Diff

1,10c1,10
< 1
< 2
< 3
< 4
< 5
< 6
< 7
< 8
< 9
< 10
---
>  1
>   2
>    3
>     4
>      5
>       6
>        7
>         8
>          9
>           10

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 108 remaining solutions by signing in and submitting your own entry
#109 Roland Schatz / @fl_Overmind - Score: 16 - 12/14/12 @ 04:09
qaPI <Esc>wy0jq9@aZZ

0 comments

#110 Evan Shrubsole / @evanshrubsole - Score: 16 - 04/01/13 @ 08:28
qqyw@"I <Esc>+q9@qZZ

0 comments

#111 Doug Black / @dougblackgt - Score: 16 - 04/08/13 @ 07:37
qa<C-V>GI <Esc>j$q11@aZZ

0 comments

#112 Hachez Floran / @FloranHachez - Score: 16 - 09/05/13 @ 02:27
<CR>:%norm <C-V><C-V>GI <CR>ZZ

0 comments

#113 Mathias Rav / @iaddquotes - Score: 17 - 11/13/12 @ 14:49
:%norm <C-V><C-V>GI <CR>:wq<CR>

0 comments

#114 Darcy Parker / @DarcyParker - Score: 19 - 10/31/12 @ 16:46
Oj.<Esc>9".pdd<C-V>GI <Esc>@"ZZ

0 comments

#115 Chase Stubblefield / @sterlingchase - Score: 19 - 11/01/12 @ 22:38
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#116 Miguel Sánchez / @miguelsr1987 - Score: 19 - 11/07/12 @ 08:11
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#117 Татос Бабаджанян / @snpdevone - Score: 19 - 11/12/12 @ 02:57
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#118 makala noble / @mnoble01 - Score: 19 - 11/13/12 @ 00:32
i <Esc>qq0y^jPi <Esc>q9@qZZ

0 comments

#119 Omer Rauchwerger / @rauchy - Score: 19 - 11/17/12 @ 23:11
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#120 Jesper Petersson / @PeterssonJesper - Score: 19 - 11/19/12 @ 05:18
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#121 Garrett Oreilly / @garrett_oreilly - Score: 19 - 11/20/12 @ 21:51
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#122 Brian Stolz / @tecnobrat - Score: 19 - 11/21/12 @ 09:05
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#123 Ravi S Sinha / @ambidextrousTx - Score: 19 - 11/26/12 @ 00:47
i <Esc>qay^jPi <Esc>0q9@aZZ

0 comments

#124 Matt Walker / @_walkermatt - Score: 19 - 11/28/12 @ 10:07
i <Esc>qqy^jPI <Esc>0q9@qZZ

0 comments

#125 Nathan / @NathanHarperoni - Score: 19 - 08/07/13 @ 07:36
Oj.<Esc>9".pdd<C-V>GI <Esc>@"ZZ

0 comments

#126 Alex Hammel / @AlexJHammel - Score: 20 - 12/27/12 @ 07:23
i <Esc>qqYpi <Esc><C-A>q8@qjdGZZ

0 comments

#127 Paul Gideon Dann / @giddie - Score: 22 - 10/31/12 @ 07:10
i <Esc>jqqky^jPI <Esc>0jq8@QZZ

0 comments

#128 Adelar S. Queiróz / @adelarsq - Score: 22 - 01/31/13 @ 15:08
i <Esc>jqqky^jPI <Esc>j0q8@qZZ

0 comments

#129 Murali Suriar / @msuriar - Score: 24 - 11/17/12 @ 02:59
:set et sw=1<CR>qq>Gjq9@qZZ

0 comments

#130 Nicolas Friedli / @NicolasFriedli - Score: 25 - 10/31/12 @ 14:24
<C-V>GI <Esc><Down>.<Down>.<Down>.<Down>.<Down>.<Down>.<Down>.<Down>.<Down>.ZZ

0 comments

#131 Raphael / @rnstlr - Score: 25 - 11/26/13 @ 15:36
<C-V>GI <Esc>j.j.j.j.j.j.j.j.j.ZZ

0 comments

#132 Eric Andres / @eric_m_andres - Score: 27 - 12/07/12 @ 12:54
<C-V>GI <Esc>j.j.j.j.j.j.j.j.j.j<Esc>ZZ

0 comments

#133 bogwonch / @bogwonch - Score: 34 - 10/30/12 @ 13:03
qq"ayw:norm <C-R>ai <CR>qx:%norm @q<CR><Esc>:wq<CR>

@whimful: yo i'm just learning ... apparently ending with ZZ lowers your score more than :wq as an ending command :P

@coot_: another trick is to use :no<S-Tab> which expands to :normal

@giddie: You can also use <C-R>" to paste default register, meaning you can just do yw at the beginning instead of "ayw. You still seem to need "norm" in the first macro, but the second can be :%no<S-Tab>. I can get 28 out of this approach.

@giddie: In fact you can get 24 if you use <C-R><C-W> instead of yanking and pasting.

4 comments

#134 Max Sherman / @johnislarry - Score: 46 - 11/12/12 @ 04:22
qqi <Esc>qj2@qj3@qj4@qj5@qj6@qj7@qj8@qj9@qj10@q:x<CR>

0 comments

#135 Lim Han / @tagore79 - Score: 69 - 11/04/12 @ 06:19
1i <Esc>j2i <Esc>2i<Esc>j3i<Esc>i<Esc>3i <Esc>j4i <Esc>j5i <Esc>j6i <Esc>j7i <Esc>j8i <Esc>j9i <Esc>jh10i <Esc>j:21<BS><BS>wq!<CR>

0 comments

Created by: @dbrgn

135 active golfers, 295 entries

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

12/30/2012 at 05:30PM

7bbd949b345fcbcfd812b231aed89f99_normal
12
#2 - Marco Hinz / @_mhinz_

05/22/2013 at 02:41AM

0e620322b2c292d069fe93e27c081f9c_normal
12
#3 - Petro Тrouq / @zulolosi

05/31/2013 at 02:59PM

Default_profile_2_normal
12
#4 - Ingo / @ist3fani

07/30/2013 at 08:08AM

Twitter_normal
12
#5 - John Papanastasiou / @JohnPapps

08/27/2013 at 12:06PM

D4cae5f3d17b4c0e09abc97f797fad30_normal
12
#6 - Sam Rose / @samwhoo

08/27/2013 at 12:10PM

2c68d2a7e6b253e55d7ded4abb4710d1_normal
12
#7 - Yann Moisan / @YannMoisan

01/03/2014 at 11:13AM

Nds_pokemon_ranger_pika_normal
12
#8 - pikaren / @REALpikaren

01/06/2014 at 07:35AM

F1109efa46b9ff4a0ce774e21112ee87_normal
12
#9 - Domingue Justin / @_jdomingue

01/10/2014 at 09:50AM

Default_profile_4_normal
12
#10 - Yiyang Chen / @yiyangc91

03/15/2014 at 10:05AM

Johnjohn_normal
12
#11 - John Braxler / @braxler

04/14/2014 at 06:48AM

40051_789281885907_29616532_44170636_2091417_n_normal
13
#12 - Conner McDaniel / @connermcd

10/30/2012 at 09:09AM

Smallprofile_normal
13
#13 - Rahul Krishnan / @rahulkrish

11/04/2012 at 08:59AM

Av_normal
13
#14 - Vasil Sakarov / @vsakarov

11/10/2012 at 11:57PM

Default_profile_6_normal
13
#15 - x aizek / @xaizek

11/15/2012 at 01:05AM

Jlove201003sq_normal
13
#16 - Justin Love / @wondible

11/25/2012 at 02:26PM

Twitter_normal
13
#17 - Drew Neil / @nelstrom

11/26/2012 at 04:07PM

Default_profile_3_normal
13
#18 - mattgibb / @mattgibb

11/27/2012 at 12:49PM

585f7ec03d6b11e19896123138142014_7_normal
13
#19 - Jordan Eldredge / @captbaritone

11/30/2012 at 11:32PM

4654945923_eb2c60ee5f_normal
13
#20 - Kerson Hsiao / @KersonHsiao

01/02/2013 at 08:31PM

F5f224e65543f062e08c3e1dd095ba9d_normal
13
#21 - Joel Elkins / @dice_tea

03/04/2013 at 10:13PM

Bunnies_normal
13
#22 - Trevor Powell / @DoomedBunnies

03/20/2013 at 04:18PM

Default_profile_1_normal
13
#23 - Shoop Da Whoop / @ShoopDaWhoop8

06/06/2013 at 01:50PM

C4065e7d8164bafa96796ecc4b8ca2d7_normal
13
#24 - Bradd Szonye / @bszonye

07/13/2013 at 02:47AM

Eightbit-00b1cb11-2032-4c8e-8fc8-e23b6065e61b_normal
13
#25 - Aaron Bieber / @aaronbieber

07/19/2013 at 04:01PM

Fyecq_normal
13
#26 - Raphael Saunier / @RaphaelSaunier

08/27/2013 at 12:21PM

C293da2f6fee67dc90111ec255d6fd80_normal
13
#27 - Florian Rathgeber / @frathgeber

08/27/2013 at 12:41PM

3df5ee82f60ff3c07d6beb61455758d2_normal
13
#28 - US Dollar Price / @USDollarPrice

11/04/2013 at 12:58PM

4131753588_6bbea994d1_o_normal
13
#29 - Salleyron Julien / @juguul

01/06/2014 at 06:28AM

Default_profile_0_normal
13
#30 - Fake Name / @The_Real_User

01/08/2014 at 07:25PM

Uyfg51j1_normal
13
#31 - Jared Meyering / @Jmeyering

03/12/2014 at 11:15AM

Default_profile_3_normal
13
#32 - ZorgroZ / @ZorgroZ

04/12/2014 at 08:00AM

Img_8822f_normal
13
#33 - Felipe Jaramillo F / @mrfelipe

04/13/2014 at 07:06PM

E4f4b319afd4554e77fa6255d1552008_normal
13
#34 - David Shields / @salacio

04/22/2014 at 01:08PM

Ewbdmdtg_normal
14
#35 - Tim Chase / @gumnos

10/30/2012 at 08:18AM

K60lgrkizu2mhav74yz1_normal
14
#36 - Danilo / @dbrgn

10/30/2012 at 08:19AM

3ubh7kcfj18s5m9erc6p_normal
14
#37 - Marcin Sza / @coot_

10/30/2012 at 12:53PM

Foetus_normal
14
#38 - john irving / @whimful

10/30/2012 at 04:26PM

Knittingstash_240dpi_72x72_normal
14
#39 - Underhill Labs / @underhilllabs

10/30/2012 at 04:46PM

02c782fae352df09baa520ac94e4d285_normal
14
#40 - Tallak Tveide / @tallakt

10/31/2012 at 12:47AM

Default_profile_3_normal
14
#41 - Nathan / @boysetsfrog

10/31/2012 at 03:13AM

Default_profile_3_normal
14
#42 - Sisso Ananda / @365DayToNibbana

10/31/2012 at 03:20PM

Rti70_normal
14
#43 - Peter Anselmo / @peter_anselmo

11/01/2012 at 02:02PM

C2e8a0949082ceecd8482b39ae5d679c_normal
14
#44 - mazemult / @mazemult

11/01/2012 at 05:29PM

Profile2_normal
14
#45 - Pete Bevin / @pbevin

11/02/2012 at 10:25AM

.souriant_normal
14
#46 - G. Ahtune / @gahtune

11/03/2012 at 02:38AM

77e8ce774cb634d764d6c874fc5193a7_normal
14
#47 - Kana Natsuno / @kana1

11/03/2012 at 07:52PM

Default_profile_0_normal
14
#48 - Mikko Loponen / @lopossumi

11/04/2012 at 07:35AM

Dsc_0096_2_normal
14
#49 - Victor Ramirez / @virako

11/04/2012 at 07:25PM

Bc879469f279ee24b7fbdfad7c2216d9_normal
14
#50 - 無ん垢の叫び / @john_ababa

11/05/2012 at 06:08AM

Default_profile_1_normal
14
#51 - Hubba / @HubbaBubbaFett

11/05/2012 at 12:38PM

3e9c5eb1a95b2be6c1fce600798643f7_normal
14
#52 - Richard Howard / @rhowardiv

11/06/2012 at 08:58PM

Me_normal
14
#53 - Davidovich / @IamDavidovich

11/07/2012 at 05:33PM

Jojo_normal
14
#54 - tridactyla / @tridactyla

11/09/2012 at 02:28AM

Bender_normal
14
#55 - Daniel / @dpaneda

11/10/2012 at 12:36PM

Buz_normal
14
#56 - buz / @buzbone

11/11/2012 at 11:05AM

Default_profile_1_normal
14
#57 - a24f0600 / @a24f0600

11/12/2012 at 11:42PM

Default_profile_4_normal
14
#58 - 4L41N / @4L41N1

11/12/2012 at 11:52PM

Image_normal
14
#59 - Kerry Burke / @kurver

11/13/2012 at 03:43PM

871b47e1836fa79e5679b5ee92025803_normal
14
#60 - Emile Swarts / @EmileSwarts

11/18/2012 at 12:31PM

6253221772_a74455ef12_z2_normal
14
#61 - Timothée Carry / @pixelastic

11/20/2012 at 01:30AM

Moicaretu2_normal
14
#62 - Moisès Gómez / @blamitter

11/21/2012 at 08:36AM

Default_profile_3_normal
14
#63 - Lieven Keersmaekers / @LievenKeersmaek

11/24/2012 at 04:41AM

Default_profile_5_normal
14
#64 - Felix Ingram / @lllamaboy

11/27/2012 at 12:30PM

59a790b53a69a3f029cfcf5771c64b5f_normal
14
#65 - Tom Cammann / @tea_sea

11/27/2012 at 12:37PM

Ants_normal
14
#66 - Matt Mulder / @mxmul

12/13/2012 at 06:00PM

9omtxh9w57r2x5pgkmvx_normal
14
#67 - Michael / @patheticpat

12/16/2012 at 10:26AM

Default_profile_3_normal
14
#68 - Édouard M'tou / @DouardM

12/21/2012 at 09:08AM

Default_profile_3_normal
14
#69 - DR / @dde81

12/22/2012 at 05:19PM

C9315f734465f1906d4e615b826fb3d1_normal
14
#70 - Alec Goebel / @zego5360

01/04/2013 at 09:42AM

Gravatar_normal
14
#71 - Asmund Liseth / @Asmund_L

01/12/2013 at 09:43AM

12e3ab10a91992d5eed681da5d171823_normal
14
#72 - Steve Tjoa / @stevetjoa

02/04/2013 at 12:20PM

Default_profile_5_normal
14
#73 - Steven Herbst / @transistorman

02/24/2013 at 05:14PM

Me.resized_normal
14
#74 - Addisu Taddese / @azeey

03/02/2013 at 11:23AM

Default_profile_4_normal
14
#75 - gnobbles / @gnobbles

03/30/2013 at 05:09PM

7bbc92500a24e0892967c51a50f1ff8e_normal
14
#76 - Tyler Bindon / @tylerbindon

04/01/2013 at 11:50PM

Default_profile_2_normal
14
#77 - Piotr Śniegowski / @PiotrSniegowski

06/06/2013 at 05:48AM

Default_profile_5_normal
14
#78 - cj / @cj01101

08/08/2013 at 01:19PM

Q70fx93qo7ug6w43ikxn_normal
14
#79 - Bart of Denver / @bartofdenver

08/12/2013 at 05:29PM

66a982fb62987e9fabd9be6250e1ce35_normal
14
#80 - Ed Zukowski / @dataoverflow

08/27/2013 at 12:23PM

5efcb885888679efa9445ec0ca377279_normal
14
#81 - Tim Mower / @timmow

08/27/2013 at 12:58PM

Arcadia_avatar_normal
14
#82 - James / @Dronak

09/03/2013 at 04:15PM

Default_profile_3_normal
14
#83 - R Tran / @techrt2050

09/09/2013 at 09:12PM

Steveo_normal
14
#84 - isayoldchap / @isayoldchap

09/10/2013 at 11:26PM

8cbfb28c7c333dc544dbee24a5e6cca8_normal
14
#85 - Stephen Drodge / @sjdrodge

09/18/2013 at 07:39PM

Default_profile_6_normal
14
#86 - brett / @brettyukich

09/21/2013 at 03:19PM

Ernesto_normal
14
#87 - Casey Dwyer / @caseydwyer

10/23/2013 at 05:28AM

25dd2bc0e4f57b690ddf7f0eed3d28c2_normal
14
#88 - bunnies president / @bunnies4p

10/27/2013 at 03:50PM

Droideye_normal
14
#89 - Joe T / @h2g2guy

10/31/2013 at 10:51PM

0efce70dfb1eef981211c87ec2fcde93_normal
14
#90 - Sam Burk / @smwbk

12/20/2013 at 08:41PM

Alex1_normal
14
#91 - Quota / @Quotad

02/04/2014 at 02:01AM

Netti_pihlajo1_lthumb_normal
14
#92 - Joonas Pihlajamaa / @jokkebk

02/25/2014 at 03:26AM

Elyquespioytxbjo3t62_normal
14
#93 - Thomas GUILLORY / @thomasguillory

03/12/2014 at 11:02AM

Default_profile_6_normal
14
#94 - Endir / @Endir2

04/18/2014 at 06:24AM

P1000007_normal
15
#95 - h_east (DDD ready) / @h_east

10/30/2012 at 08:59AM

Gnu_meditate_normal
15
#96 - Thomas Wickham / @mackwic

11/11/2012 at 10:15AM

Default_profile_3_normal
15
#97 - Ker / @alin_ker

11/18/2012 at 08:22AM

Pupulon_normal
15
#98 - David Barnett / @mu_mind

11/24/2012 at 11:07PM

84dd09d518ef0e57c0c5f9d14fdaa380_normal
15
#99 - Runar / @runarfu

01/12/2013 at 01:04AM

Ava2-184_normal
15
#100 - Radosław Majewski / @radomaj

01/22/2013 at 08:23AM

Myprofileimage_normal
15
#101 - Woojung Kim 김우중 / @_kimwz

07/12/2013 at 05:45PM

935b1709fad3096671774ceae74d2ee8_normal
15
#102 - Dave Aitken / @actionshrimp

08/27/2013 at 11:48AM

Ts0_normal
15
#103 - David Escribano / @DavidEGx

08/27/2013 at 12:47PM

37f503509a124dd05dae3c688d172fb0_normal
15
#104 - Jeffrey Klein / @jeffwklein

09/09/2013 at 12:18PM

Eznan9wzg8vaqtb3kjaa_normal
15
#105 - Khromenko Andrey / @ttydragon

11/23/2013 at 08:17AM

Default_profile_5_normal
16
#106 - JTeo / @JTeosw

11/05/2012 at 09:51AM

Avatar-2_normal
16
#107 - Einar Lielmanis / @spicausis

11/07/2012 at 08:44AM

Default_profile_5_normal
16
#108 - Jason Wolf / @zephyr_wolf

11/08/2012 at 05:09AM

Default_profile_6_normal
16
#109 - Roland Schatz / @fl_Overmind

12/14/2012 at 04:09AM

F2ecdbb7682f84af70412e869af91dce_normal
16
#110 - Evan Shrubsole / @evanshrubsole

04/01/2013 at 08:28AM

B4de419e89a931601985bcc4f46d966d_normal
16
#111 - Doug Black / @dougblackgt

04/08/2013 at 07:37AM

7349a4e3ad844816d6dac32f6002f74f_normal
16
#112 - Hachez Floran / @FloranHachez

09/05/2013 at 02:27AM

Img_7708-crop_normal
17
#113 - Mathias Rav / @iaddquotes

11/13/2012 at 02:49PM

Test_normal
19
#114 - Darcy Parker / @DarcyParker

10/31/2012 at 04:46PM

Untitled-1_normal
19
#115 - Chase Stubblefield / @sterlingchase

11/01/2012 at 10:38PM

985f1d18769b7d5de8227d503c84eb24_normal
19
#116 - Miguel Sánchez / @miguelsr1987

11/07/2012 at 08:11AM

8lac0txqhzhtl6f9k8pc_normal
19
#117 - Татос Бабаджанян / @snpdevone

11/12/2012 at 02:57AM

Makala_normal
19
#118 - makala noble / @mnoble01

11/13/2012 at 12:32AM

Graduation_avatar_normal
19
#119 - Omer Rauchwerger / @rauchy

11/17/2012 at 11:11PM

Pajp2_normal
19
#120 - Jesper Petersson / @PeterssonJesper

11/19/2012 at 05:18AM

761828614c3b180e857d7b1d4cf3ea86_normal
19
#121 - Garrett Oreilly / @garrett_oreilly

11/20/2012 at 09:51PM

9c4dde1e554176f47c09bdabd08c2f8a_normal
19
#122 - Brian Stolz / @tecnobrat

11/21/2012 at 09:05AM

Ba1070d8841ff40257904144ae3db536_normal
19
#123 - Ravi S Sinha / @ambidextrousTx

11/26/2012 at 12:47AM

6472418b96219199d9f0f4d71e7c068f_normal
19
#124 - Matt Walker / @_walkermatt

11/28/2012 at 10:07AM

C2e6fe10d0c29112c0de437f2df4aff8_normal
19
#125 - Nathan / @NathanHarperoni

08/07/2013 at 07:36AM

O78a2ujeqbyrqkgsuto8_normal
20
#126 - Alex Hammel / @AlexJHammel

12/27/2012 at 07:23AM

Paul_gideon_dann_normal
22
#127 - Paul Gideon Dann / @giddie

10/31/2012 at 07:10AM

I3_normal
22
#128 - Adelar S. Queiróz / @adelarsq

01/31/2013 at 03:08PM

Brain_normal
24
#129 - Murali Suriar / @msuriar

11/17/2012 at 02:59AM

60849d00fcf8b4caed339427340f879a_normal
25
#130 - Nicolas Friedli / @NicolasFriedli

10/31/2012 at 02:24PM

Default_profile_1_normal
25
#131 - Raphael / @rnstlr

11/26/2013 at 03:36PM

Profilepic_normal
27
#132 - Eric Andres / @eric_m_andres

12/07/2012 at 12:54PM

2xwfjs348vgycbmka2p8_normal
34
#133 - bogwonch / @bogwonch

10/30/2012 at 01:03PM

726510e8410a9bfe5b1ec04618f6b4f1_normal
46
#134 - Max Sherman / @johnislarry

11/12/2012 at 04:22AM

Profile_pic_normal
69
#135 - Lim Han / @tagore79

11/04/2012 at 06:19AM