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):
39
#451 - Andrés Llopis / @andreselsuave

03/04/2013 at 12:13AM

39
#452 - Russ Adams / @rustushki

12/22/2013 at 04:36PM

39
#453 - CJ Avilla / @cjav_dev

11/10/2014 at 03:14AM

39
#454 - Aioriya / @AioriyaDonk

08/31/2019 at 05:47PM

41
#455 - Adv_Zxy / @adv_zxy

07/04/2017 at 06:56AM

42
#456 - fumi komi / @kommy_vx

03/28/2013 at 04:51AM

42
#457 - Torben Rasmussen / @rasmustorben

04/27/2013 at 10:55PM

43
#458 - Damian Martinez G. / @damipoo

11/06/2013 at 06:27PM

43
#459 - Naoki Masuko / @nmasuko

07/11/2014 at 11:26PM

43
#460 - Jin-hyeok Kim / @JinhyeokKim12

04/07/2023 at 02:04AM

44
#461 - wilddog64 / @chengkai318

12/17/2013 at 06:35PM

45
#462 - Pradeep Kumar 🇮🇳🇮🇳🇮🇳🇮🇱🇮🇱🇮🇱 / @pradeep6kumar

01/24/2013 at 06:05AM

45
#463 - Delon / @delonleonard

01/15/2020 at 12:03AM

46
#464 - Bradley M. Small / @BradleySmall

10/28/2013 at 01:53AM

47
#465 - くま ก็็็็็็็็็็็็็ʕ•͡ᴥ•ʔ ก้้้้้้้้้้้ 55 / @kumack55

04/02/2013 at 06:16PM

47
#466 - Rasmus Prentow / @rasmusprentow

05/08/2013 at 07:36AM

47
#467 - Jesse House / @house9twx

06/27/2013 at 01:38AM

48
#468 - prince ducaca / @prince_du_caca

09/26/2018 at 11:16PM

49
#469 - Alexander Bandukwala / @abanduk

01/17/2014 at 08:22PM

50
#470 - Julius Pfrommer / @dlctr

03/02/2013 at 05:32PM

53
#471 - Hugo / @szeyattai

08/17/2018 at 08:30AM

54
#472 - xds2000 / @xds2000

01/25/2013 at 03:23AM

56
#473 - Kfir Gollan / @kfirgollan

04/07/2017 at 09:48PM

57
#474 - Alberto Pose / @thepose

11/06/2013 at 05:53PM

69
#475 - WoljaIlpapa / @WoljaIlpapa

12/19/2013 at 06:42AM

74
#476 - fff / @fff51460170

02/21/2021 at 07:06AM

88
#477 - Tj / @yrddy

08/13/2014 at 08:03AM

96
#478 - Vishnu Rajeevan / @vishnurajeevan

05/07/2013 at 03:27AM

102
#479 - Jurica / @Jurica34581259

11/16/2018 at 01:39PM

106
#480 - harry 🏳️‍🌈 / @hdgarrood

02/10/2013 at 08:29PM