Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put 51103ad8041832000200003f

vim = 22 / 7

pi square vim

Start file
vim
End file
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
 v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
 m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m

View Diff

1c1,21
< vim
---
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m
>  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v
> vimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvimvim
>  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m  m

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 95 remaining solutions by signing in and submitting your own entry
#96 Ram Tamtam / ramtamtamtam - Score: 34 - 07/18/14 @ 12:58
O v <Esc>Go m <Esc><C-V>gg0y21Py2j6P:%s/ $<CR>:x<CR>

0 comments

#97 Carlos A Henríquez Q / lagunex - Score: 34 - 01/19/15 @ 08:44
O<Esc>22i  v<Esc>0x+D22po<Esc>22i  m<Esc>0x{3Y6PZZ

0 comments

#98 Jon Krause / jkrause314 - Score: 34 - 10/26/15 @ 00:37
ye21PO<Esc>22i v <Esc>xYjp:s/v/m/g<CR>VHy6PZZ

0 comments

#99 Márton Németh / nemarci42 - Score: 34 - 03/01/17 @ 13:26
yw21PO<Esc>22i v <Esc>xjo<Esc>22i m <Esc>x:%y<CR>6pZZ

0 comments

#100 Brent Carmer / brent_carmer - Score: 35 - 04/14/13 @ 05:05
yw21Po<Esc>22a m <Esc>xyykP:s/m/v/g<CR>yap6PZZ

0 comments

#101 curist / curist - Score: 35 - 07/09/13 @ 03:20
yw21PO<C-C><C-C>22i v <Esc>xjo<C-C><C-C>22i m <Esc>xV{y6PZZ

0 comments

#102 Eric Potter / pottereric - Score: 35 - 12/20/13 @ 19:08
22i v <Esc>xdwo<Esc>22po<Esc>22i m <Esc>x:1,3y<CR>6pZZ

0 comments

#103 pikaren / REALpikaren - Score: 36 - 01/07/14 @ 04:32
O v <Esc>qqv0y21Pq$xj@qo m <Esc>@q$xVkky6PZZ

0 comments

#104 Patrick Pitoscia / Patrick03960431 - Score: 36 - 08/15/14 @ 01:58
yw$21pO<Esc>22i v <Esc>xjo<Esc>22i m <Esc>xgg3YG6pZZ

0 comments

#105 Tj / yrddy - Score: 36 - 08/19/14 @ 07:36
yw21PO<C-C><C-C>22i v <Esc>xGo<C-C><C-C>22i m <Esc>xVggy6PZZ

0 comments

#106 James / Dronak - Score: 37 - 09/12/13 @ 20:06
22i v <Esc>xi<CR><BS><Esc>yw21Po<Esc>22i m <Esc>x2k3Y2j6pZZ

0 comments

#107 Pradeep Kumar / pradeep6kumar - Score: 38 - 02/05/13 @ 05:03
yW$21pY2pk22R v <Esc>x:3<CR>22R m <Esc>xgg3YG6pZZ

0 comments

#108 Tobias Praetsch / tpraetsch - Score: 38 - 02/16/13 @ 21:23
O v <Esc>Go m <Esc><C-V>2k2by$21py2j6P:%s/\s$//<CR>ZZ

0 comments

#109 Jan Wedekind / wedesoft - Score: 38 - 05/15/13 @ 15:23
O v <Esc>Go m <Esc><C-V>1G0y21P3yy6P:%d<BS>s/ $<CR>:wq!<CR>

0 comments

#110 Piotr Śniegowski / PiotrSniegowski - Score: 38 - 06/06/13 @ 12:30
ye21PI<CR><Esc>k22i  v<Esc>0<Del>jo<Esc>22i  m<Esc>0<Del>y2kP5PZZ

0 comments

#111 Oliver Christ / 0liverChrist - Score: 38 - 09/25/13 @ 15:15
O v<Esc>21a  v<Esc>j21avim<Esc>o m<Esc>21a  m<Esc>Vkky6PZZ

0 comments

#112 Christopher Harrison / Xophmeister - Score: 39 - 02/06/13 @ 14:17
yw21PYpx:s/[^m]/ /g|t0|s/m/v/g|%y<CR>66PZZ

Xophmeister: That's weird: I did '6PZZ' after the ex-command, but it's been recorded as '66PZZ' :P

udioica: You had a hit-enter prompt. Any time you see a hit-enter prompt, Vim records the next stroke in duplicate (unless you actually hit enter...). It's a bug in Vim.

Xophmeister: Vim has bugs!?

zulolosi: Add a new issue with this problem in the web page: https://code.google.com/p/vim/issues/list

zulolosi: The problem was solved in vim 7.4.65, last version is 7.4.103 (11/27/2013). Thanks to @udioica. https://code.google.com/p/vim/source/detail?r=7f341db39d5bee0a9259a14a65e19bc9efa65417

5 comments

#113 ltn614 / ltn614 - Score: 39 - 09/23/15 @ 08:25
yw21PO <Esc>22av  <Esc>xxjo <Esc>22am  <Esc>xxgg3yy6PZZ

0 comments

#114 Adam Bell / adamgbell - Score: 40 - 02/25/13 @ 02:26
yw21PYpx:s/[^m]/ /g|t0<CR>:s/m/v/g<CR>:%y<CR>6PZZ

0 comments

#115 Jacob / jayekub - Score: 40 - 03/22/14 @ 23:09
d$22pO<Esc>22i v <Esc>xjo<Esc>22i m <Esc>xo<Esc>vgghd7pGddZZ

0 comments

#116 Felipe Jaramillo F / mrfelipe - Score: 40 - 04/02/14 @ 16:22
d$22pO<Esc>22i v <Esc>xjo<Esc>22i m <Esc>xo<Esc>vgghd7pGddZZ

0 comments

#117 brett / brettyukich - Score: 41 - 09/21/13 @ 21:55
O  v<Esc>Go  m<Esc><C-V>gg0xqq22pGo<Esc>q6@qdd:%s/^ //<CR>ZZ

0 comments

#118 Jesse Nazario / JesseNazario - Score: 52 - 04/18/13 @ 20:25
ye20o<Esc>2G22Pqqv0y3jpq5@qggD22a v <Esc>x6@q3G22a m <Esc>x6@qZZ

0 comments

#119 Justin Knag / justinknag - Score: 402 - 08/28/14 @ 15:17
yw21Pyy6pggO V<BS>vm<BS>  <C-C><C-C>v0y21Puvllllllhy$xl21puhhhhllllllllli  <C-C><C-C>jjkkllllllllllhllivjj<C-C><C-C>uhll0v$y$21puvhhhhhhy$21pkddkujklxxujju<C-R><C-R><C-R><C-R><C-R>ddO v<BS><BS><BS>jj<BS><BS><BS><C-C><C-C>hqa qkqsa<C-C><C-C>qqa kqqasq<C-C><C-C>qujkqa qkqai v q<BS><C-C><C-C>q21@ajjui  V<BS>v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v  v<C-C><C-C>yyj2pjjjk2pjjjkukkh:%s:3/v<CR>:3/v<CR>:3/v<CR>:<Up>/m/g<CR>:3,3s/v/m/g<CR>:noh<CR>2yyjjp2jp2jpj2jkpjjpjjpjdd$xkllkxklxkklxklxkklxklxklkxklxkklxklxkklxklxkkklxZZ

0 comments

Created by: zulolosi

119 active golfers, 379 entries

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

02/04/2013 at 11:47PM

20
#2 - Victor Ramirez / virako

02/04/2013 at 11:56PM

20
#3 - Marcin Radomski / _dextero

02/05/2013 at 12:22AM

20
#4 - Steve Tjoa / stevetjoa

02/05/2013 at 06:17AM

20
#5 - Petro Тrouq / zulolosi

02/17/2013 at 08:46AM

20
#6 - Kai Yuan / kentyuan

02/24/2013 at 08:39PM

20
#7 - Michael Vitz / michaelvitz

02/25/2013 at 10:11AM

20
#8 - Trevor Powell / DoomedBunnies

03/04/2013 at 11:26PM

20
#9 - Kerson Hsiao / KersonHsiao

03/29/2013 at 03:37PM

20
#10 - Tyler / tylerbindon

04/01/2013 at 05:56PM

20
#11 - Chase Stubblefield / sterlingchase

04/27/2013 at 05:01AM

20
#12 - wushexu / wushexu

05/20/2013 at 05:46AM

20
#13 - Krzysztof Adamski / adamski_k

06/23/2013 at 11:10AM

20
#14 - moo goo / m00g000

07/02/2013 at 02:21PM

20
#15 - Bradd Szonye / bszonye

07/13/2013 at 01:59AM

20
#16 - _ky_ / ultimate_ky

08/14/2013 at 06:44AM

20
#17 - Pierre Bousquie / pierrebousquie

09/24/2013 at 12:18PM

20
#18 - Stefan Schmidt / stafue

12/06/2013 at 02:44PM

20
#19 - Yann Moisan / YannMoisan

01/03/2014 at 11:22AM

20
#20 - Marchand Paul-Valère / pvmarch

02/28/2014 at 12:55PM

20
#21 - Thomas GUILLORY / thomasguillory

02/28/2014 at 01:01PM

20
#22 - Matthew Draper / _matthewd

02/28/2014 at 05:06PM

20
#23 - John Braxler / braxler

04/04/2014 at 03:35PM

20
#24 - zmo / guyzmo

05/09/2014 at 09:08PM

20
#25 - kemar / le_kemar

08/29/2014 at 12:05PM

20
#26 - Johannes H. / neVexa

09/23/2014 at 03:19PM

20
#27 - Michael Daffin / James14790

10/17/2014 at 04:42PM

20
#28 - eBrnd / eBrnd

11/05/2014 at 10:07PM

20
#29 - Alexander Kazakov / volandkot

04/02/2015 at 07:17AM

20
#30 - pftb12345 / pftb12345

04/12/2015 at 12:28AM

20
#31 - Joaquin Coronel / joakonumberone

02/08/2017 at 11:11PM

21
#32 - xRyanxBrutalityx / xHainingx

02/13/2013 at 12:12AM

21
#33 - Zach Kelling / zeekay

02/23/2013 at 08:27PM

21
#34 - Forrest Zeisler / fzeisler

04/19/2013 at 02:19PM

21
#35 - Justin / justinjaffray

04/26/2013 at 01:43AM

21
#36 - Aleksander Pohl / AleksanderPohl

04/27/2013 at 01:54PM

21
#37 - Tresifina / Tresifina

05/23/2013 at 02:42AM

21
#38 - Hachez Floran / FloranHachez

09/04/2013 at 08:45AM

21
#39 - Grimy / Yurhon

12/15/2013 at 02:46PM

21
#40 - Dimitar Dimitrov / kurkale6ka

04/14/2016 at 10:30AM

21
#41 - jakeroberts / jakeroberts

05/28/2017 at 03:25PM

22
#42 - Asmund Liseth / Asmund_L

02/05/2013 at 05:16PM

22
#43 - Dheeraj Sayala / dheerosaur

03/27/2013 at 10:31PM

22
#44 - Ben Zittlau / benzittlau

04/18/2013 at 10:21PM

22
#45 - Charlene Tshos / charlymul

04/27/2013 at 09:46AM

23
#46 - Daniel Lundin / danielundin

02/06/2013 at 02:35PM

23
#47 - N / nymph192

02/11/2013 at 08:31PM

23
#48 - Amy / imightbeAmy

02/15/2013 at 07:20PM

23
#49 - jeepee / jeepee_test

06/07/2013 at 12:15PM

23
#50 - Nathan / NathanHarperoni

08/02/2013 at 04:31PM

23
#51 - Marcin Sza / coot_

10/24/2013 at 09:34PM

23
#52 - Casey Dwyer / caseydwyer

11/04/2013 at 04:52AM

23
#53 - Quota / Quotad

01/30/2014 at 08:30AM

23
#54 - Joonas Pihlajamaa / jokkebk

02/25/2014 at 12:41PM

23
#55 - Cristian Lupașcu / clupasq

03/11/2016 at 08:44AM

24
#56 - Patricio Clark / PatricioClark

03/04/2013 at 02:38AM

24
#57 - Maarten Claes / maartencls

03/29/2013 at 07:45PM

24
#58 - Vinicius Souza / vsouzas

06/06/2013 at 12:34AM

24
#59 - cj / cj01101

08/08/2013 at 12:24PM

24
#60 - gary.klindt@googlema / garstekli

12/01/2013 at 08:02PM

24
#61 - Ian Liu Rodrigues / ianliu88

01/07/2014 at 04:23PM

24
#62 - Patrick Oscity / der_padde

02/11/2014 at 01:43PM

24
#63 - Robert Siemieniec / rsiemieniec

02/18/2014 at 02:33PM

24
#64 - 闇を切り裂く非線形システム少女ところたん / tokoro10g

04/06/2014 at 03:50PM

24
#65 - Gerald Tilma / GeraldTilma

10/23/2015 at 04:04AM

25
#66 - Tye Harrison / TyeHarrison

05/14/2013 at 03:40AM

25
#67 - Juan Luis / rufianw

07/03/2014 at 03:39AM

26
#68 - Oscar Friberg / oscfri

02/08/2013 at 06:52PM

27
#69 - adi li / guessimtoolate

02/05/2013 at 07:59AM

27
#70 - Ingo / ist3fani

07/29/2013 at 09:31PM

27
#71 - Paul Roberts / psxpau1

10/13/2013 at 07:53AM

29
#72 - chris / chris53143606

12/26/2013 at 09:26PM

29
#73 - 土ヤ / ttsuchiya

06/08/2014 at 03:09PM

30
#74 - GimVolfer VimGolfer / GimGol

03/05/2013 at 02:48PM

30
#75 - Matthew Leadbetter / Halty

10/17/2014 at 04:34PM

31
#76 - Colin Garriga-Salaün / cgarrigasalaun

09/24/2013 at 01:02PM

31
#77 - Gurukandhamoorthi / Gurukandhamoor1

07/23/2017 at 03:29PM

32
#78 - Thomas Royer / Cydonia7

04/10/2013 at 02:25PM

32
#79 - Romain Pomier / RPomier

04/15/2013 at 07:13PM

32
#80 - powertomato / powertomato

07/10/2013 at 12:09AM

32
#81 - RobertT / techrt2050

07/18/2013 at 05:43AM

33
#82 - vansan / VinceVansan

02/05/2013 at 11:39PM

33
#83 - Milton Soares Filho / miltonsoaresf

02/19/2013 at 04:23PM

33
#84 - Sikado / sikado

02/20/2013 at 04:48PM

33
#85 - gnobbles / gnobbles

04/06/2013 at 06:18AM

33
#86 - Toto l'haricot / nico_le_terribl

06/27/2013 at 05:36PM

33
#87 - Justin Le / mstk

07/25/2013 at 07:35AM

34
#88 - Runar / runarfu

02/05/2013 at 07:12AM

34
#89 - Jason Wolf / zephyr_wolf

02/05/2013 at 01:17PM

34
#90 - Dezső Zoltán / zakiazigazi

02/07/2013 at 02:35PM

34
#91 - Weston Neal / wtneal

02/27/2013 at 01:41AM

34
#92 - くま55 / kumack55

04/11/2013 at 03:33AM

34
#93 - Adelar S. Queiróz / adelarsq

04/24/2013 at 11:53PM

34
#94 - Guillaume Seren / guillaumeseren

08/25/2013 at 07:21PM

34
#95 - Yiyang Chen / yiyangc91

03/09/2014 at 03:29PM

34
#96 - Ram Tamtam / ramtamtamtam

07/18/2014 at 12:58PM

34
#97 - Carlos A Henríquez Q / lagunex

01/19/2015 at 08:44AM

34
#98 - Jon Krause / jkrause314

10/26/2015 at 12:37AM

34
#99 - Márton Németh / nemarci42

03/01/2017 at 01:26PM

35
#100 - Brent Carmer / brent_carmer

04/14/2013 at 05:05AM

35
#101 - curist / curist

07/09/2013 at 03:20AM

35
#102 - Eric Potter / pottereric

12/20/2013 at 07:08PM

36
#103 - pikaren / REALpikaren

01/07/2014 at 04:32AM

36
#104 - Patrick Pitoscia / Patrick03960431

08/15/2014 at 01:58AM

36
#105 - Tj / yrddy

08/19/2014 at 07:36AM

37
#106 - James / Dronak

09/12/2013 at 08:06PM

38
#107 - Pradeep Kumar / pradeep6kumar

02/05/2013 at 05:03AM

38
#108 - Tobias Praetsch / tpraetsch

02/16/2013 at 09:23PM

38
#109 - Jan Wedekind / wedesoft

05/15/2013 at 03:23PM

38
#110 - Piotr Śniegowski / PiotrSniegowski

06/06/2013 at 12:30PM

38
#111 - Oliver Christ / 0liverChrist

09/25/2013 at 03:15PM

39
#112 - Christopher Harrison / Xophmeister

02/06/2013 at 02:17PM

39
#113 - ltn614 / ltn614

09/23/2015 at 08:25AM

40
#114 - Adam Bell / adamgbell

02/25/2013 at 02:26AM

40
#115 - Jacob / jayekub

03/22/2014 at 11:09PM

40
#116 - Felipe Jaramillo F / mrfelipe

04/02/2014 at 04:22PM

41
#117 - brett / brettyukich

09/21/2013 at 09:55PM

52
#118 - Jesse Nazario / JesseNazario

04/18/2013 at 08:25PM

402
#119 - Justin Knag / justinknag

08/28/2014 at 03:17PM