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 5192f96ad8df110002000002

Words in parens

We should all ace this, right?

Start file
one two
three
End file
(one) (two)
(three)

View Diff

1,2c1,2
< one two
< three
---
> (one) (two)
> (three)

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 3535 remaining solutions by signing in and submitting your own entry
#3536 velina v veleva / @vveleva - Score: 155 - 04/23/15 @ 16:55
::%s/\(\a*\)/(&)/g<CR>ZZ<C-A><BS><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Right><BS><CR><CR>%s/\(\w*\)/(\1)/g<CR>ZZ/<Esc><Esc>u<Esc>/<BS>:%s/\(\w*\)/(\1)/g<CR>ZZ<CR>:%s/\(\w*\)/(\1)/g<CR>ZZ<Left><Left><Right><Right><Right><BS><BS><BS><BS><BS><BS><CR><Esc>:w<CR><Esc>:wq<CR>

0 comments


Created by: @udioica

3536 active golfers, 11370 entries

Leaderboard (lowest score wins):
21
#3091 - Yuan Guan / @yuanguan89

02/28/2015 at 02:09AM

21
#3092 - vimgolf / @neovimp

03/04/2015 at 06:23PM

21
#3093 - Mickael Le Gal / @mickaellegal

03/29/2015 at 12:14PM

21
#3094 - Johannes Elferich / @jojoelfe

04/25/2015 at 06:11AM

21
#3095 - m a c s f / @macsf

05/07/2015 at 02:05PM

21
#3096 - Teemu Okkonen / @TeemuOkkonen

07/06/2015 at 08:24PM

21
#3097 - gyermolenko / @gyermolenko_

08/13/2015 at 08:47AM

21
#3098 - Andrew Michaud / @andrewjmichaud

09/04/2015 at 12:46AM

21
#3099 - Jo / @jonearth42

11/22/2015 at 12:53PM

21
#3100 - kaan / @bike

12/14/2015 at 07:21PM

21
#3101 - Pratap Koritala / @pratap_koritala

02/16/2016 at 05:05PM

21
#3102 - Louis Ritchie / @_louisr_

03/31/2016 at 04:35AM

21
#3103 - HypoTech / @Obongoetco

04/15/2016 at 01:36PM

21
#3104 - Jonathan Werner / @jonathanewerner

07/09/2016 at 06:09PM

21
#3105 - Alejandro Claro / @alejandroclaro

07/13/2016 at 09:57PM

21
#3106 - PeterGC / @petkusGC

07/17/2016 at 08:03PM

21
#3107 - Ryan van Rensburg / @rdvr001

07/18/2016 at 04:32PM

21
#3108 - Marko / @ultrox

11/07/2016 at 11:35AM

21
#3109 - Yann Colina / @YannColina

11/13/2016 at 09:36PM

21
#3110 - Nico Jansen / @nicojansen1804

01/04/2017 at 05:56PM

21
#3111 - Milovan Zogovic / @zogash

04/13/2017 at 07:35AM

21
#3112 - Ryan Coopersmith / @RyanCoopersmit1

06/03/2017 at 04:45PM

21
#3113 - Dick Quixly / @DickQuixly

07/09/2017 at 02:14PM

21
#3114 - Andrei Gasparovici / @agasparovici

07/14/2017 at 08:52AM

21
#3115 - Gavin Faris / @gavin_faris

08/25/2017 at 08:31PM

21
#3116 - neallred / @neallred1

10/17/2017 at 12:11PM

21
#3117 - Romeo Valentin / @Seecez

10/24/2017 at 10:28AM

21
#3118 - phucvin / @phucvin

02/14/2018 at 04:07PM

21
#3119 - Diego Balseiro / @diegobalseiro

02/16/2018 at 07:37PM

21
#3120 - Jonathan Abramson / @zenpoy

03/15/2018 at 10:08PM