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 5100ce70326e09000200004a

Saving the hashes(#)

The following file is copied from vimcasts.org(Its only for learning purpose,hope the site owner doesn't mind it), its probably the easiest of challenges.Our goal is to delete every line which doesn't contain a hash signs. The remaining hash signs with numbers are then sorted to get the final output.

Start file
January 2013
#40 Long-range line duplication (6:31)
December 2012
#39 Profiling Vimscript performance (8:09)
November 2012
#38 Writing a custom fold expression (12:07) #37 How to fold (8:49)
August 2012
#36 VimGolf - Prime Numbers (6:53)
May 2011
#35 Fugitive.vim - exploring the history of a git repository (10:04) #34 Fugitive.vim - browsing the git object database (9:45) #33 Fugitive.vim - resolving merge conflicts with vimdiff (11:35)
April 2011
#32 Fugitive.vim - working with the git index (11:41) #31 Fugitive.vim - a complement to command line git (8:27)
February 2011
#30 Undo branching and Gundo.vim (6:30)
January 2011
#29 Aligning text with Tabular.vim (5:11)
November 2010
#28 Refining search patterns with the command-line window (7:51)
October 2010
#27 Synchronizing plugins with git submodules and pathogen (9:24) #26 Bubbling text (6:23)
September 2010
#25 Creating colorschemes for Vim (9:44)
July 2010
#24 Updating your vimrc file on the fly (2:51) #23 Converting HAML to ERB with Vim macros (7:36)
June 2010
#22 Selecting columns with visual block mode (4:21) #21 Converting markdown to structured HTML with a macro (9:25)
May 2010
#20 Running Vim within IRB (4:35) #19 Spell checking (5:42) #18 Formatting text with par (5:12)
April 2010
#17 Hard wrapping text (5:23) #16 Soft wrapping text (4:54) #15 The file explorer (5:36) #14 The :edit command (3:50) #13 Cleaning up with Vim (0:36)
March 2010
#12 Modal editing: undo, redo and repeat (5:26) #11 Using the changelist and jumplist (3:21) #10 Creating the Vimcasts logo as ASCII art (5:47) #9 How to use tabs (5:28)
February 2010
#8 Working with tabs (3:17) #7 Working with windows (5:32) #6 Working with buffers (3:28) #5 Indentation commands (5:41)
January 2010
#4 Tidying whitespace (4:33) #3 Whitespace preferences and filetypes (3:29) #2 Tabs and Spaces (6:22) #1 Show invisibles (2:52) 

End file
#1 Show invisibles (2:52) 
#2 Tabs and Spaces (6:22)
#3 Whitespace preferences and filetypes (3:29)
#4 Tidying whitespace (4:33)
#5 Indentation commands (5:41)
#6 Working with buffers (3:28)
#7 Working with windows (5:32)
#8 Working with tabs (3:17)
#9 How to use tabs (5:28)
#10 Creating the Vimcasts logo as ASCII art (5:47)
#11 Using the changelist and jumplist (3:21)
#12 Modal editing: undo, redo and repeat (5:26)
#13 Cleaning up with Vim (0:36)
#14 The :edit command (3:50)
#15 The file explorer (5:36)
#16 Soft wrapping text (4:54)
#17 Hard wrapping text (5:23)
#18 Formatting text with par (5:12)
#19 Spell checking (5:42)
#20 Running Vim within IRB (4:35)
#21 Converting markdown to structured HTML with a macro (9:25)
#22 Selecting columns with visual block mode (4:21)
#23 Converting HAML to ERB with Vim macros (7:36)
#24 Updating your vimrc file on the fly (2:51)
#25 Creating colorschemes for Vim (9:44)
#26 Bubbling text (6:23)
#27 Synchronizing plugins with git submodules and pathogen (9:24)
#28 Refining search patterns with the command-line window (7:51)
#29 Aligning text with Tabular.vim (5:11)
#30 Undo branching and Gundo.vim (6:30)
#31 Fugitive.vim - a complement to command line git (8:27)
#32 Fugitive.vim - working with the git index (11:41)
#33 Fugitive.vim - resolving merge conflicts with vimdiff (11:35)
#34 Fugitive.vim - browsing the git object database (9:45)
#35 Fugitive.vim - exploring the history of a git repository (10:04)
#36 VimGolf - Prime Numbers (6:53)
#37 How to fold (8:49)
#38 Writing a custom fold expression (12:07)
#39 Profiling Vimscript performance (8:09)
#40 Long-range line duplication (6:31)

View Diff

1,22c1,24
< 
< January 2013
< #40 Long-range line duplication (6:31)
< December 2012
< #39 Profiling Vimscript performance (8:09)
< November 2012
< #38 Writing a custom fold expression (12:07) #37 How to fold (8:49)
< August 2012
< #36 VimGolf - Prime Numbers (6:53)
< May 2011
< #35 Fugitive.vim - exploring the history of a git repository (10:04) #34 Fugitive.vim - browsing the git object database (9:45) #33 Fugitive.vim - resolving merge conflicts with vimdiff (11:35)
< April 2011
< #32 Fugitive.vim - working with the git index (11:41) #31 Fugitive.vim - a complement to command line git (8:27)
< February 2011
< #30 Undo branching and Gundo.vim (6:30)
< January 2011
< #29 Aligning text with Tabular.vim (5:11)
< November 2010
< #28 Refining search patterns with the command-line window (7:51)
< October 2010
< #27 Synchronizing plugins with git submodules and pathogen (9:24) #26 Bubbling text (6:23)
< September 2010
---
> #1 Show invisibles (2:52) 
> #2 Tabs and Spaces (6:22)
> #3 Whitespace preferences and filetypes (3:29)
> #4 Tidying whitespace (4:33)
> #5 Indentation commands (5:41)
> #6 Working with buffers (3:28)
> #7 Working with windows (5:32)
> #8 Working with tabs (3:17)
> #9 How to use tabs (5:28)
> #10 Creating the Vimcasts logo as ASCII art (5:47)
> #11 Using the changelist and jumplist (3:21)
> #12 Modal editing: undo, redo and repeat (5:26)
> #13 Cleaning up with Vim (0:36)
> #14 The :edit command (3:50)
> #15 The file explorer (5:36)
> #16 Soft wrapping text (4:54)
> #17 Hard wrapping text (5:23)
> #18 Formatting text with par (5:12)
> #19 Spell checking (5:42)
> #20 Running Vim within IRB (4:35)
> #21 Converting markdown to structured HTML with a macro (9:25)
> #22 Selecting columns with visual block mode (4:21)
> #23 Converting HAML to ERB with Vim macros (7:36)
> #24 Updating your vimrc file on the fly (2:51)
24,38c26,40
< July 2010
< #24 Updating your vimrc file on the fly (2:51) #23 Converting HAML to ERB with Vim macros (7:36)
< June 2010
< #22 Selecting columns with visual block mode (4:21) #21 Converting markdown to structured HTML with a macro (9:25)
< May 2010
< #20 Running Vim within IRB (4:35) #19 Spell checking (5:42) #18 Formatting text with par (5:12)
< April 2010
< #17 Hard wrapping text (5:23) #16 Soft wrapping text (4:54) #15 The file explorer (5:36) #14 The :edit command (3:50) #13 Cleaning up with Vim (0:36)
< March 2010
< #12 Modal editing: undo, redo and repeat (5:26) #11 Using the changelist and jumplist (3:21) #10 Creating the Vimcasts logo as ASCII art (5:47) #9 How to use tabs (5:28)
< February 2010
< #8 Working with tabs (3:17) #7 Working with windows (5:32) #6 Working with buffers (3:28) #5 Indentation commands (5:41)
< January 2010
< #4 Tidying whitespace (4:33) #3 Whitespace preferences and filetypes (3:29) #2 Tabs and Spaces (6:22) #1 Show invisibles (2:52) 
< 
---
> #26 Bubbling text (6:23)
> #27 Synchronizing plugins with git submodules and pathogen (9:24)
> #28 Refining search patterns with the command-line window (7:51)
> #29 Aligning text with Tabular.vim (5:11)
> #30 Undo branching and Gundo.vim (6:30)
> #31 Fugitive.vim - a complement to command line git (8:27)
> #32 Fugitive.vim - working with the git index (11:41)
> #33 Fugitive.vim - resolving merge conflicts with vimdiff (11:35)
> #34 Fugitive.vim - browsing the git object database (9:45)
> #35 Fugitive.vim - exploring the history of a git repository (10:04)
> #36 VimGolf - Prime Numbers (6:53)
> #37 How to fold (8:49)
> #38 Writing a custom fold expression (12:07)
> #39 Profiling Vimscript performance (8:09)
> #40 Long-range line duplication (6:31)

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 444 remaining solutions by signing in and submitting your own entry
#445 Harry Garrood / @hdgarrood - Score: 106 - 02/10/13 @ 20:29
:v/#/d<CR>:%s/ #/\r#g<BS>/g<CR>:%sort<CR>/#2<CR>Dggpuo<Esc>p13jkkdd/wh<CR>Duddggjp/whi<CR>ddunnggddunnddgjjggjjp36jVkkkkdggjjjp:wq<CR>

0 comments


Created by: @pradeep6kumar

445 active golfers, 1806 entries

Leaderboard (lowest score wins):
25
#151 - I / @ForgetIt17

11/22/2013 at 10:15PM

25
#152 - winterlight / @winterlight4

12/24/2013 at 03:04PM

25
#153 - Andreas Källberg / @Anka213

01/17/2014 at 03:33AM

25
#154 - John Karlsson / @karlssonjohn

01/30/2014 at 12:56PM

25
#155 - Joonas Pihlajamaa / @jokkebk

02/18/2014 at 07:08AM

25
#156 - Konrad / @zichul

03/09/2014 at 02:06PM

25
#157 - buz / @buzbone

03/11/2014 at 10:22PM

25
#158 - oliver mueller / @marcontwit

03/15/2014 at 12:52PM

25
#159 - RB / @powerage88

03/16/2014 at 12:38AM

25
#160 - Eric Kever / @codeoverlode

09/30/2014 at 03:01AM

25
#161 - Matt / @mcr05

01/18/2015 at 10:30AM

25
#162 - Rudolfs Sohn / @rudolf_son

08/28/2015 at 09:41AM

25
#163 - thlix / @thlix

01/13/2016 at 12:27AM

25
#164 - tPenguinLTG / @tpenguinltg

04/26/2016 at 08:04AM

25
#165 - Ben Hill / @KaizenSoze70

06/15/2016 at 01:07PM

25
#166 - Rami Hovi / @hacker_lawyer

05/23/2017 at 01:49PM

25
#167 - DHM / @DHM29978992

04/24/2018 at 12:40AM

25
#168 - chaotic / @laersn

09/07/2018 at 01:12PM

25
#169 - Florent Jaby / @Floby

10/15/2018 at 04:34PM

25
#170 - name / @name65894813

11/21/2018 at 05:03PM

25
#171 - majo senf / @majo_senf

06/18/2019 at 12:18PM

26
#172 - Trevor Powell / @DoomedBunnies

01/27/2013 at 11:38PM

26
#173 - Justin / @justinjaffray

04/25/2013 at 01:46PM

26
#174 - Matt Parnell / @parnmattdev

01/02/2014 at 11:09PM

26
#175 - Steffen Siering / @ursobln

06/06/2014 at 11:31PM

26
#176 - Sntano Euhsk / @SEuhsk

06/16/2014 at 12:43AM

26
#177 - Sebastian B / @cyborgryna

07/19/2014 at 12:56PM

26
#178 - Alexander Kazakov / @volandkot

03/31/2015 at 10:20AM

26
#179 - Charles A. Bouffard / @the_cabouffard

04/05/2015 at 07:54PM

26
#180 - Lindsay Swift / @_lindsai_

07/07/2015 at 09:49PM