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

Generate English Alphabets

Start with a, get up to z.

Start file
a
End file
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

View Diff

0a1,26
> a
> b
> c
> d
> e
> f
> g
> h
> i
> j
> k
> l
> m
> n
> o
> p
> q
> r
> s
> t
> u
> v
> w
> x
> y
> z
1a2,26
> b
> c
> d
> e
> f
> g
> h
> i
> j
> k
> l
> m
> n
> o
> p
> q
> r
> s
> t
> u
> v
> w
> x
> y
> z

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 127 remaining solutions by signing in and submitting your own entry
#128 Mathias Bynens  / @mathias - Score: 27 - 04/08/11 @ 08:34
:set nf=alpha<CR>qayyp<C-A>q24@aZZ

0 comments

#129 Hervo Manuel / @Azema31 - Score: 27 - 05/18/11 @ 19:15
:set nf=alpha<CR>qayyp<C-A>q24@aZZ

0 comments

#130 Ian McCowan / @valrus - Score: 27 - 05/29/11 @ 19:09
:set nf=alpha<CR>qqyyp<C-A>q24@qZZ

0 comments

#131 Anton / @al_alley - Score: 27 - 07/29/11 @ 21:07
:set nf=alpha<CR>qayyp<C-A>q24@aZZ

0 comments

#132 cameron / @cameronaustgen - Score: 27 - 11/11/11 @ 22:05
:set nf=alpha<CR>qqyyp<C-A>q24@qZZ

0 comments

#133 Cody Veal / @cjhveal - Score: 27 - 02/05/12 @ 19:24
:set nf=alpha<CR>qayyp<C-A>q24@aZZ

0 comments

#134 Kevin Hamer / @khamer - Score: 28 - 01/19/11 @ 22:36
x:h<_<CR>jjYZQPJx^qqli<CR><Esc>q25@qZZ

0 comments

#135 4L41N / @4L41N1 - Score: 28 - 11/20/12 @ 14:27
:se<Tab> nrf<Tab>=alpha<CR>qqYp<C-A>q24@qZZ

0 comments

#136 Gavrie Philipson / @gavrieph - Score: 30 - 01/10/11 @ 11:34
:set nf=alpha<CR>qaYp<C-A><Esc>q24@a<Esc>:wq<CR>

0 comments

#137 Quota / @Quotad - Score: 35 - 01/10/14 @ 16:28
qqo<C-R>=nr2char(96+line('.'))<CR><Esc>q24@qZZ

0 comments

#138 Josh Weinberg / @jcweinberg - Score: 37 - 01/07/11 @ 13:40
abcdefghijklm<Esc>Ypg?$kJx$qqi<CR><Esc>geq24@qZZ

@jcweinberg: This is the one true way to do this ;)

@sharat87: g? <-- amazing use

2 comments

#139 Sven Eigenbrodt / @rompetroll - Score: 37 - 02/04/11 @ 15:24
Y25p:%s/a/\=nr2char(line(".")+96)/<CR>ZZ

0 comments

#140 Hu Junfeng / @junfeng - Score: 38 - 07/30/11 @ 14:30
qqylo<C-R>=nr2char(char2nr(@")+1)<CR><Esc>q24@qZZ

0 comments

#141 Thomas Schönwälder / @Masei1988 - Score: 38 - 06/02/12 @ 18:54
abcdefghijklm<Esc>Ypg??kJx:s/\w/&<C-V><CR>/g<CR>ddZZ

0 comments

#142 Shrikant Sharat / @sharat87 - Score: 39 - 01/08/11 @ 14:12
!!seq 97 122<CR>qqC<C-R>=nr2char(<C-R>")<CR><Esc>jq99@qZZ

@insti_vimgolf: I like this one.

1 comment

#143 Lee Marlow / @lmarlow - Score: 42 - 01/07/11 @ 17:03
:pu=map(range(98,122),'nr2char(v:val)')<CR>ZZ

0 comments

#144 Beau Dacious / @nocash - Score: 42 - 03/20/11 @ 15:39
Abcdefghijklmnopqrstuvwxyz<Esc>:s/./&\r/g<CR>ddZZ

0 comments

#145 Glen / @Glen_S - Score: 42 - 07/24/12 @ 07:38
abcdefghijklmnopqrstuvwxyz<Esc>:s/./&<C-V><CR>/g<CR>ddZZ

0 comments

#146 Solomon White / @rubysolo - Score: 45 - 01/08/11 @ 18:51
abcdefghijklm<Esc>Ypg?$:%s/\(.\)/\1<C-V><CR>/g<CR>dd14GddZZ

0 comments

#147 Piotr Ślatała / @pslapsla - Score: 48 - 04/25/11 @ 15:21
abcdefghijklmnopqrstuvwxyz<Esc>:%s%\(.\)%\1\r%g<CR>ddZZ

0 comments

#148 Matt / @meagar - Score: 52 - 09/07/11 @ 20:21
abcdefghijklmnopqrstuvwxyz<Esc>:s/\(.\)/\r\1/g<CR>:1<CR>dd:wq<CR>

0 comments

#149 Andrew Ardill / @AndrewArdill - Score: 53 - 06/01/12 @ 01:47
ob<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>ZZ

0 comments

#150 Kylan Robinson / @kylan - Score: 54 - 01/09/11 @ 16:39
a<CR>b<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>ZZ

0 comments

#151 Viktor Jackson / @AntiStalinista - Score: 54 - 05/05/12 @ 08:48
o<Esc>:for i in range(98,122)|put=nr2char(i)|endfor<CR>2GddZZ

0 comments

#152 R. P. Fainmen / @4loops - Score: 55 - 01/07/11 @ 20:47
ob<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>:wq<CR>

0 comments

#153 Steve Tan / @stevetantan - Score: 55 - 01/18/11 @ 03:59
ob<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>:wq<CR>

0 comments

#154 Rūdolfs Ošiņš / @rudolfs - Score: 55 - 02/26/11 @ 06:14
ob<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<CR><BS><Esc>ZZ

0 comments

#155 Carlos Troncoso / @carlostph - Score: 60 - 01/14/11 @ 00:05
abcdefghijklmnopqrstuvwxyz<Esc>:%s/\(\a\)\(\a\)/\1<C-V><CR>\2/g<CR>:<Up><CR>:wq<CR>

0 comments

#156 Roman / @RMNXrc - Score: 64 - 01/21/11 @ 18:10
ai<BS><CR>b<CR>v<BS>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<CR><BS><Esc>:w<CR>:q<CR>

0 comments

#157 Bryan Liles (ツ) / @bryanl - Score: 79 - 01/07/11 @ 13:15
obo<BS><CR>c<CR>d<CR>d<Left><C-X><Right><Left><C-X><Right><Left><C-A>u<BS><BS><BS><BS><BS><BS><BS><BS>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>:<Esc>kjlxZZ

@bryanl: spelunking through vimgolf's internals

1 comment

#158 Евгений Грачев / @EugeneGrachev - Score: 79 - 04/28/11 @ 08:10
i<End><CR>bc<BS><CR>c<CR>d<CR>e<BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS>a<CR>b<CR>c<CR>d<CR>e<CR>f<CR>g<CR>h<CR>i<CR>j<CR>k<CR>l<CR>m<CR>n<CR>o<CR>p<CR>q<CR>r<CR>s<CR>t<CR>u<CR>v<CR>w<CR>x<CR>y<CR>z<Esc>ZZ

0 comments

#159 Douglas Gibb / @douglasgibb - Score: 83 - 04/05/11 @ 19:16
ob<Esc>oc<Esc>od<Esc>oe<Esc>of<Esc>og<Esc>oh<Esc>oi<Esc>oh<BS>j<Esc>ok<Esc>ol<Esc>om<Esc>on<Esc>oo<Esc>op<Esc>oq<Esc>or<Esc>os<Esc>ot<Esc>ou<Esc>ov<Esc>ow<Esc>ox<Esc>oy<Esc>oz<Esc>:w<CR>:q<CR>

0 comments

Created by: @Ujjwol

159 active golfers, 328 entries

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

07/22/2012 at 03:16AM

23
#2 - Frank Twitting / @knarfben

07/23/2012 at 04:01PM

23
#3 - Petro Тrouq / @zulolosi

06/04/2013 at 06:49PM

23
#4 - Vu Le / @lbkvu

01/29/2014 at 08:17AM

23
#5 - John Braxler / @braxler

05/18/2014 at 06:22PM

24
#6 - Tim Chase / @gumnos

01/07/2011 at 03:44PM

24
#7 - Wei Dai / @clvv42

01/07/2011 at 09:28PM

24
#8 - derp derp / @derp__

01/08/2011 at 01:15AM

24
#9 - Ujjwol Lamichhane / @Ujjwol

01/08/2011 at 05:30AM

24
#10 - Oleg Roshupkin / @jjjahson

01/08/2011 at 08:06AM

24
#11 - dominique pellé / @vimgolfisto

01/08/2011 at 08:18AM

24
#12 - Paul Tarjan / @ptarjan

01/08/2011 at 10:15AM

24
#13 - Balkoth / @_Balkoth_

01/08/2011 at 03:59PM

24
#14 - Douglas Stockwell / @dstockwell

01/08/2011 at 09:07PM

24
#15 - Utkarsh Kukreti / @utkarshkukreti

01/09/2011 at 12:10AM

24
#16 - Thedward the Edward / @thedward

01/11/2011 at 06:03PM

24
#17 - Henri Bourcereau / @mmai

01/15/2011 at 04:42PM

24
#18 - Ilya Ermolin / @ermolinis

01/16/2011 at 11:22AM

24
#19 - Stuart Gale / @bishboria

01/16/2011 at 01:32PM

24
#20 - Andrey A. Ugolnik / @andreyugolnik

01/19/2011 at 05:30PM

24
#21 - Insti / @insti_vimgolf

01/20/2011 at 03:07AM

24
#22 - iCross / @iCrossOfficial

02/01/2011 at 02:50PM

24
#23 - vg / @vimgolfer

02/27/2011 at 10:28PM

24
#24 - Misha (Mike) Granin / @Granin

03/14/2011 at 01:08PM

24
#25 - Andrew Dorman / @andydorman

03/21/2011 at 04:15PM

24
#26 - Raeez / @raeez

04/14/2011 at 04:34AM

24
#27 - Sebastian Morr / @blinry

04/28/2011 at 08:34PM

24
#28 - Dragan Cvetinovic / @kawkafi

05/06/2011 at 09:44PM

24
#29 - not so punk :] / @notsopunk

06/19/2011 at 01:48PM

24
#30 - Peter Anselmo / @peter_anselmo

06/23/2011 at 05:27PM

24
#31 - Johan Sveholm / @rymdtjuren

06/30/2011 at 07:51AM

24
#32 - Siegfried Idyll / @siegfriedidyll

07/03/2011 at 01:52AM

24
#33 - Justin Love / @wondible

08/26/2011 at 02:51PM

24
#34 - You-Siang Lin / @yslinnctu

12/01/2011 at 07:49AM

24
#35 - Trevor Powell / @DoomedBunnies

12/07/2011 at 03:50AM

24
#36 - Jakub Arnold / @darthdeus

12/19/2011 at 04:34PM

24
#37 - Renat Aksitov / @Korvin79

02/08/2012 at 09:37PM

24
#38 - Federico Galassi / @federicogalassi

02/22/2012 at 06:30PM

24
#39 - Dmitry Olyenyov / @Dmitry_Olyenyov

08/22/2012 at 10:41AM

24
#40 - GimVolfer VimGolfer / @GimGol

04/23/2014 at 07:47AM

24
#41 - Rasmus P / @rasmup

04/26/2014 at 04:12PM

25
#42 - Henrik Nyh / @henrik

01/07/2011 at 11:21AM

25
#43 - Brian Buckley / @bbuckley

01/07/2011 at 12:17PM

25
#44 - Jim Garvin / @coderifous

01/07/2011 at 01:17PM

25
#45 - James Cash / @jamesnvc

01/07/2011 at 02:03PM

25
#46 - Mattiassich Ákos / @mattiassicha

01/07/2011 at 02:09PM

25
#47 - h_east (DDD ready) / @h_east

01/07/2011 at 02:27PM

25
#48 - Johannes Martinsson / @moxiba

01/07/2011 at 06:52PM

25
#49 -  Ikhsan Maulana / @ixandidu

01/07/2011 at 06:59PM

25
#50 - Stephen Morrow / @yawmark

01/07/2011 at 07:06PM

25
#51 - Pete Johns / @johnsyweb

01/07/2011 at 10:22PM

25
#52 - Przemysław Pawełczyk / @przemoc86

01/07/2011 at 11:22PM

25
#53 - rabidpraxis / @rabidpraxis

01/07/2011 at 11:50PM

25
#54 - William Shackleton / @wshackleton

01/08/2011 at 01:08AM

25
#55 - Paul King / @nrocy

01/08/2011 at 10:15AM

25
#56 - Stephan Weller / @stephan_weller

01/08/2011 at 02:00PM

25
#57 - Victor Vaile / @victorv4_

01/08/2011 at 10:02PM

25
#58 - aaaa3331 / @aaaa3331

01/08/2011 at 10:21PM

25
#59 - alex scott / @4l3xsc0tt

01/10/2011 at 01:44PM

25
#60 - Agus Lopez / @aguslr

01/10/2011 at 08:27PM

25
#61 - Wonha Ryu / @beingryu

01/11/2011 at 06:01AM

25
#62 - Aaron Bull Schaefer / @elasticdog

01/11/2011 at 06:09PM

25
#63 - Benoît Ryder / @benoitryder

01/11/2011 at 08:46PM

25
#64 - Clive Evans / @swish_bob

01/13/2011 at 09:51PM

25
#65 - Eivind Jahren / @HaskellElephant

01/15/2011 at 05:46PM

25
#66 - Ben Sinclair / @muppling

01/17/2011 at 12:25PM

25
#67 - Soliman Sylvain / @sylvain_soliman

01/17/2011 at 05:07PM

25
#68 - lemming / @darthlemming

01/18/2011 at 07:31PM

25
#69 - SirVer / @SirVerII

01/23/2011 at 02:21PM

25
#70 - Matthieu Honel / @ocus

01/29/2011 at 03:30PM

25
#71 - Antony Scriven / @antonyscriven

02/07/2011 at 12:55AM

25
#72 - Arthur Chiu / @arthur_chiu

02/12/2011 at 04:53AM

25
#73 - Joost / @vlabakje

02/13/2011 at 04:41PM

25
#74 - Yannis Chatzimichos / @feedward

04/14/2011 at 06:56PM

25
#75 - Ilya Strukov / @i1ey

05/02/2011 at 08:20AM

25
#76 - dtennant / @dtennant

06/06/2011 at 05:42PM

25
#77 - ElasticSwarts / @EmileSwarts

06/09/2011 at 08:42PM

25
#78 - Dave / @zzdave13

07/16/2011 at 05:14PM

25
#79 - Jesús Espino / @jespinog

09/06/2011 at 04:33PM

25
#80 - jasper110 / @jasper110

09/22/2011 at 08:55AM

25
#81 - William Dunand / @wdunand

11/15/2011 at 08:19AM

25
#82 - Andrew Flockhart / @andruflockhart

12/13/2011 at 10:46PM

25
#83 - Xavier Nayrac / @lkdjiin

01/07/2012 at 07:42PM

25
#84 - Pei-Lun Lee / @ypcatw

02/03/2012 at 04:55AM

25
#85 - 無ん垢の叫び / @john_ababa

02/26/2012 at 07:58AM

25
#86 - kurban / @kurban_mall

05/06/2012 at 08:43AM

25
#87 - Ben Friedland / @bfriedland174

05/21/2012 at 11:10AM

25
#88 - ☈king / @SharpsawDotOrg

06/10/2012 at 04:55AM

25
#89 - mwatkward / @AftrschoolSpe

07/06/2012 at 12:12PM

25
#90 - Salvador / @smastermind

08/17/2012 at 07:32AM

25
#91 - Théophile Wallez / @twallez

08/23/2012 at 10:40PM

25
#92 - Arto Vuori / @dhpe

09/01/2012 at 05:46PM

25
#93 - tmr / @tmr314

09/11/2012 at 01:33PM

25
#94 - a24f0600 / @a24f0600

11/20/2012 at 02:16PM

25
#95 - Marcin Sza / @coot_

12/05/2012 at 12:05PM

25
#96 - Michael / @patheticpat

12/17/2012 at 09:19PM

25
#97 - Kerson Hsiao / @KersonHsiao

03/23/2013 at 03:06PM

25
#98 - kiyofumi.kmt / @kumack55

04/10/2013 at 01:38AM

25
#99 - Marco Hinz / @_mhinz_

05/28/2013 at 08:26AM

25
#100 - James / @Dronak

09/03/2013 at 02:33AM

25
#101 - brett / @brettyukich

09/30/2013 at 08:31AM

25
#102 - cj / @cj01101

10/18/2013 at 10:27PM

25
#103 - foo / @foo88832727

10/19/2013 at 05:27PM

25
#104 - pikaren / @REALpikaren

01/23/2014 at 12:12PM

25
#105 - Joonas Pihlajamaa / @jokkebk

02/21/2014 at 12:04PM

25
#106 - Marchand Paul-Valère / @pvmarch

03/03/2014 at 02:47PM

25
#107 - Felipe Jaramillo F / @mrfelipe

05/03/2014 at 04:44PM

25
#108 - Caek / @Caek_

09/10/2014 at 04:19AM

26
#109 - Asmund Liseth / @Asmund_L

01/07/2011 at 05:49PM

26
#110 - Francisco Dibar / @frandibar

01/07/2011 at 07:29PM

26
#111 - Gael / @darkael2

01/08/2011 at 01:03AM

26
#112 - Tien Le / @tienlex

01/09/2011 at 01:29PM

26
#113 - Cameron Jordan / @cameronism

01/11/2011 at 05:28PM

26
#114 - Andrew Burgess / @andrew8088

01/17/2011 at 07:21PM

26
#115 - Eric Weikl / @ericweikl

01/17/2011 at 09:16PM

26
#116 - drio / @drio

01/18/2011 at 12:06AM

26
#117 - Michał Taszycki / @mehowte

01/24/2011 at 11:48AM

26
#118 - dschobel / @dschobel

02/16/2011 at 02:12PM

26
#119 - Rocky Meza / @rockymeza

03/05/2011 at 08:38PM

26
#120 - Nomen Nescio / @vadtusan

04/13/2011 at 11:43AM

26
#121 - wusher / @wusher

06/01/2011 at 01:51AM

26
#122 - Stanley Wang / @stanleynwang

07/19/2011 at 06:48PM

26
#123 - Daniel Lundin / @danielundin

12/14/2011 at 04:34PM

27
#124 - aimee / @sermoa

01/07/2011 at 11:17AM

27
#125 - Matthew Draper / @_matthewd

01/07/2011 at 01:06PM

27
#126 - Geoff Reedy / @gereedy

01/07/2011 at 09:36PM

27
#127 - paulfariello ✏️ / @paulfariello

03/07/2011 at 04:45PM

27
#128 - Mathias Bynens  / @mathias

04/08/2011 at 08:34AM

27
#129 - Hervo Manuel / @Azema31

05/18/2011 at 07:15PM

27
#130 - Ian McCowan / @valrus

05/29/2011 at 07:09PM

27
#131 - Anton / @al_alley

07/29/2011 at 09:07PM

27
#132 - cameron / @cameronaustgen

11/11/2011 at 10:05PM

27
#133 - Cody Veal / @cjhveal

02/05/2012 at 07:24PM

28
#134 - Kevin Hamer / @khamer

01/19/2011 at 10:36PM

28
#135 - 4L41N / @4L41N1

11/20/2012 at 02:27PM

30
#136 - Gavrie Philipson / @gavrieph

01/10/2011 at 11:34AM

35
#137 - Quota / @Quotad

01/10/2014 at 04:28PM

37
#138 - Josh Weinberg / @jcweinberg

01/07/2011 at 01:40PM

37
#139 - Sven Eigenbrodt / @rompetroll

02/04/2011 at 03:24PM

38
#140 - Hu Junfeng / @junfeng

07/30/2011 at 02:30PM

38
#141 - Thomas Schönwälder / @Masei1988

06/02/2012 at 06:54PM

39
#142 - Shrikant Sharat / @sharat87

01/08/2011 at 02:12PM

42
#143 - Lee Marlow / @lmarlow

01/07/2011 at 05:03PM

42
#144 - Beau Dacious / @nocash

03/20/2011 at 03:39PM

42
#145 - Glen / @Glen_S

07/24/2012 at 07:38AM

45
#146 - Solomon White / @rubysolo

01/08/2011 at 06:51PM

48
#147 - Piotr Ślatała / @pslapsla

04/25/2011 at 03:21PM

52
#148 - Matt / @meagar

09/07/2011 at 08:21PM

53
#149 - Andrew Ardill / @AndrewArdill

06/01/2012 at 01:47AM

54
#150 - Kylan Robinson / @kylan

01/09/2011 at 04:39PM

54
#151 - Viktor Jackson / @AntiStalinista

05/05/2012 at 08:48AM

55
#152 - R. P. Fainmen / @4loops

01/07/2011 at 08:47PM

55
#153 - Steve Tan / @stevetantan

01/18/2011 at 03:59AM

55
#154 - Rūdolfs Ošiņš / @rudolfs

02/26/2011 at 06:14AM

60
#155 - Carlos Troncoso / @carlostph

01/14/2011 at 12:05AM

64
#156 - Roman / @RMNXrc

01/21/2011 at 06:10PM

79
#157 - Bryan Liles (ツ) / @bryanl

01/07/2011 at 01:15PM

79
#158 - Евгений Грачев / @EugeneGrachev

04/28/2011 at 08:10AM

83
#159 - Douglas Gibb / @douglasgibb

04/05/2011 at 07:16PM