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

Reformat/Refactor a Golfer Class

A simple case of removing unneeded code and fixing broken indentation.

Start file
class Golfer
     
def initialize; end # initialize
 
def useless; end;
 
     
def self.hello(a,b,c,d)
      puts
"Hello #{a}, #{b}, #{c}, #{d}"
   
end
end
End file
class Golfer
 
def self.hello(*a)
    puts
"Hello #{a.join(',')}"
 
end
end

View Diff

2,7c2,4
<      def initialize; end # initialize
<   def useless; end;
<  
<      def self.hello(a,b,c,d)
<       puts "Hello #{a}, #{b}, #{c}, #{d}"
<    end
---
>   def self.hello(*a)
>     puts "Hello #{a.join(',')}"
>   end

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 1753 remaining solutions by signing in and submitting your own entry
#1754 Patrick Muldoon / @d00n - Score: 206 - 12/29/10 @ 15:12
<Esc>:<Up><Up><Up><Up><Up>g.<BS>/.*def.$<BS>*end.*/d<CR>:v/\S/f<BS>d<CR>fai*<Esc><Right><Right>cf))<Esc><Down><Left>i.join(',')<Esc>lldf:df"a"<Esc>=<Esc><Esc><BS><Up><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>xxxxxi  <Down><Down><Esc>x<Up><Right>xx<Esc>:wq<CR>

0 comments


Created by: @igrigorik

1754 active golfers, 7154 entries

Leaderboard (lowest score wins):
36
#481 - Martin Bielik / @mabielik

09/06/2020 at 09:25PM

36
#482 - lamtt77 / @lamtt77

10/11/2020 at 07:28AM

36
#483 - Vahan / @Vahan00900245

10/07/2021 at 04:09PM

36
#484 - Golf Vim / @GolfVim11388

06/30/2023 at 01:15PM

36
#485 - emre özküçük / @emreozkucuk

11/13/2023 at 07:51PM

36
#486 - shahanavaz m / @shahanavazm

01/31/2024 at 09:35PM

36
#487 - schrjako / @schrjako

04/06/2024 at 10:00AM

36
#488 - ck961018 / @ck961018

05/04/2024 at 05:22AM

36
#489 - ^M\w{3}$ / @Frankva

07/18/2024 at 12:01PM

36
#490 - xscript71 / @xscript71

10/14/2024 at 12:46PM

36
#491 - Anton de Regt / @antonderegt

10/24/2024 at 06:57PM

36
#492 - whjum / @whjum

01/14/2025 at 03:19AM

37
#493 - Sérgio Figueiredo / @doubl3dge

12/30/2010 at 02:42PM

37
#494 - Alain Gilbert / @alain_gilbert

12/30/2010 at 11:17PM

37
#495 - kmymtksh / @kmymtksh

12/31/2010 at 07:55PM

37
#496 - Marc Lacoursière / @RooSoft

01/05/2011 at 12:07AM

37
#497 - dominique pellé / @vimgolfisto

01/06/2011 at 10:39PM

37
#498 - Sam / @samng96

01/07/2011 at 01:04AM

37
#499 - Douglas Stockwell / @dstockwell

01/08/2011 at 08:34PM

37
#500 - Rörd Hinrichsen / @roerdhh

01/09/2011 at 09:46PM

37
#501 - Toto l'haricot / @nico_le_terribl

01/10/2011 at 10:20PM

37
#502 - Steve Morrow / @yawmark

01/13/2011 at 03:40AM

37
#503 - deris / @deris0126

01/26/2011 at 05:40PM

37
#504 - Luke Randall / @luke_randall

02/08/2011 at 03:30PM

37
#505 - Tim Harper / @timcharper

03/17/2011 at 07:58PM

37
#506 - Yannis Chatzimichos / @feedward

04/13/2011 at 12:57AM

37
#507 - Damian Dawber / @damian6970

05/30/2011 at 08:46PM

37
#508 - Alan Peabody / @alanpeabody

06/03/2011 at 03:31AM

37
#509 - rhkwdamicjhdf / @rhkwdamicjhdf

06/08/2011 at 06:02AM

37
#510 - Peter Anselmo / @peter_anselmo

06/24/2011 at 08:59PM