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 479 remaining solutions by signing in and submitting your own entry
#480 harry 🏳️‍🌈 / @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

480 active golfers, 2063 entries

Leaderboard (lowest score wins):
25
#181 - tPenguinLTG / @tpenguinltg

04/26/2016 at 08:04AM

25
#182 - Ben Hill / @KaizenSoze70

06/15/2016 at 01:07PM

25
#183 - Rami Hovi / @hacker_lawyer

05/23/2017 at 01:49PM

25
#184 - DHM / @DHM29978992

04/24/2018 at 12:40AM

25
#185 - chaotic / @laersn

09/07/2018 at 01:12PM

25
#186 - Florent Jaby / @Floby

10/15/2018 at 04:34PM

25
#187 - name / @name65894813

11/21/2018 at 05:03PM

25
#188 - majo senf / @majo_senf

06/18/2019 at 12:18PM

25
#189 - Jason Neylon / @jasonneylon

03/13/2020 at 08:37AM

25
#190 - Ryan Nevius / @ryannevius

03/20/2020 at 08:51PM

25
#191 - A A A / @37fatos

01/10/2021 at 05:29PM

25
#192 - Suhaib Murshid / @suhaibm

10/04/2024 at 07:14AM

26
#193 - Trevor Powell / @DoomedBunnies

01/27/2013 at 11:38PM

26
#194 - Justin / @justinjaffray

04/25/2013 at 01:46PM

26
#195 - Matt Parnell / @parnmattdev

01/02/2014 at 11:09PM

26
#196 - Steffen Siering / @ursobln

06/06/2014 at 11:31PM

26
#197 - Sntano Euhsk / @SEuhsk

06/16/2014 at 12:43AM

26
#198 - Sebastian B / @cyborgryna

07/19/2014 at 12:56PM

26
#199 - Alexander Kazakov / @volandkot

03/31/2015 at 10:20AM

26
#200 - Charles A. Bouffard / @the_cabouffard

04/05/2015 at 07:54PM

26
#201 - Lindsay Swift / @_lindsai_

07/07/2015 at 09:49PM

26
#202 - glepha / @glepha_vim

03/10/2016 at 04:22AM

26
#203 - niels aamloos / @AamloosNiels

05/28/2016 at 04:50PM

26
#204 - Etai Nativ / @enativ72

07/02/2017 at 07:24AM

26
#205 - Luis Pigueiras / @LPigueiras

11/22/2017 at 12:18PM

26
#206 - r8923vqnu89wcnar / @r8923vqnu89wcn1

11/22/2017 at 12:19PM

26
#207 - Chris Dean / @ChrisDe62379742

07/18/2018 at 07:58PM

26
#208 - Adam / @askoufish

10/25/2018 at 01:04AM

26
#209 - GrimmT / @GrimmT10

12/23/2019 at 07:00PM

26
#210 - asirago / @asiragoo

12/13/2023 at 07:14AM