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 1337 remaining solutions by signing in and submitting your own entry
#1338 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

1338 active golfers, 5464 entries

Leaderboard (lowest score wins):
38
#571 - Timur Celik / @clktmr

12/21/2018 at 04:54PM

38
#572 - Andreas Nordahl / @andreasnordahl

01/03/2019 at 10:24AM

38
#573 - abgalphabet / @abgalphabet

01/19/2019 at 04:00PM

38
#574 - Sebastien Nicoud / @sebnukem

02/11/2019 at 01:52AM

38
#575 - Danny O'Sullivan / @db0s

04/02/2019 at 08:02PM

39
#576 - Mirosław Boruta / @m1rk00

12/28/2010 at 08:41PM

39
#577 - 藤田祥 / Sho Fujita / @fujisho

12/31/2010 at 11:58AM

39
#578 - Matt Tarbit / @mtarbitdev

01/06/2011 at 10:47PM

39
#579 - Adrian Silva / @scyldinga

01/12/2011 at 10:58PM

39
#580 - Nick / @quinks25

01/13/2011 at 04:04AM

39
#581 - Rob Ciaccio / @RobertoCalavera

01/14/2011 at 05:39PM

39
#582 - Wesley Wong / @wesleymwwong

01/28/2011 at 08:37AM

39
#583 - vg / @vimgolfer

02/19/2011 at 09:59PM

39
#584 - xaizek / @xaizek

02/26/2011 at 08:38PM

39
#585 - Nomen Nescio / @vadtusan

04/14/2011 at 07:49AM

39
#586 - Wim Looman / @Nemo157

06/06/2011 at 11:16AM

39
#587 - José Mota / @josemotanet

06/09/2011 at 12:29PM

39
#588 - Glenn / @glennular

07/18/2011 at 12:38AM

39
#589 - Petrik de Heus / @four54

08/22/2011 at 06:17PM

39
#590 - Dmitry Bashkatov / @dbashkatov

10/31/2011 at 08:37AM

39
#591 - Infertux / @Infertux

11/04/2011 at 04:45PM

39
#592 - Samnang Chhun / @samnangchhun

11/24/2011 at 06:48AM

39
#593 - Mislav Marohnić / @mislav

12/05/2011 at 05:27PM

39
#594 - Oscar Del Ben / @oscardelben

12/12/2011 at 01:00AM

39
#595 - Jey Balachandran / @jeybala

12/23/2011 at 02:36AM

39
#596 - Raúl Pedroche / @pedrocheisback

02/07/2012 at 08:34PM

39
#597 - demon.mhm / @demonmhm

02/18/2012 at 06:37PM

39
#598 - Lukas / @cast3r

03/11/2012 at 12:37AM

39
#599 - learninghang / @learninghang

04/14/2012 at 10:27AM

39
#600 - James Bell / @sarcainian

05/05/2012 at 11:31PM