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 9v006733c56b0000000005d9

Generate an entry for each month

The input file contains a URI with a month in it. Generate the URIs for all the other months up to a couple of years

Start file
gs://my-bucket/some-dir/2016-01-01/*.avro
End file
gs://my-bucket/some-dir/2016-01-01/*.avro
gs://my-bucket/some-dir/2016-02-01/*.avro
gs://my-bucket/some-dir/2016-03-01/*.avro
gs://my-bucket/some-dir/2016-04-01/*.avro
gs://my-bucket/some-dir/2016-05-01/*.avro
gs://my-bucket/some-dir/2016-06-01/*.avro
gs://my-bucket/some-dir/2016-07-01/*.avro
gs://my-bucket/some-dir/2016-08-01/*.avro
gs://my-bucket/some-dir/2016-09-01/*.avro
gs://my-bucket/some-dir/2016-10-01/*.avro
gs://my-bucket/some-dir/2016-11-01/*.avro
gs://my-bucket/some-dir/2016-12-01/*.avro
gs://my-bucket/some-dir/2017-01-01/*.avro
gs://my-bucket/some-dir/2017-02-01/*.avro
gs://my-bucket/some-dir/2017-03-01/*.avro
gs://my-bucket/some-dir/2017-04-01/*.avro
gs://my-bucket/some-dir/2017-05-01/*.avro
gs://my-bucket/some-dir/2017-06-01/*.avro
gs://my-bucket/some-dir/2017-07-01/*.avro
gs://my-bucket/some-dir/2017-08-01/*.avro
gs://my-bucket/some-dir/2017-09-01/*.avro
gs://my-bucket/some-dir/2017-10-01/*.avro
gs://my-bucket/some-dir/2017-11-01/*.avro
gs://my-bucket/some-dir/2017-12-01/*.avro
gs://my-bucket/some-dir/2018-01-01/*.avro
gs://my-bucket/some-dir/2018-02-01/*.avro
gs://my-bucket/some-dir/2018-03-01/*.avro
gs://my-bucket/some-dir/2018-04-01/*.avro
gs://my-bucket/some-dir/2018-05-01/*.avro
gs://my-bucket/some-dir/2018-06-01/*.avro
gs://my-bucket/some-dir/2018-07-01/*.avro
gs://my-bucket/some-dir/2018-08-01/*.avro
gs://my-bucket/some-dir/2018-09-01/*.avro
gs://my-bucket/some-dir/2018-10-01/*.avro
gs://my-bucket/some-dir/2018-11-01/*.avro
gs://my-bucket/some-dir/2018-12-01/*.avro
gs://my-bucket/some-dir/2019-01-01/*.avro
gs://my-bucket/some-dir/2019-02-01/*.avro
gs://my-bucket/some-dir/2019-03-01/*.avro
gs://my-bucket/some-dir/2019-04-01/*.avro
gs://my-bucket/some-dir/2019-05-01/*.avro
gs://my-bucket/some-dir/2019-06-01/*.avro
gs://my-bucket/some-dir/2019-07-01/*.avro
gs://my-bucket/some-dir/2019-08-01/*.avro
gs://my-bucket/some-dir/2019-09-01/*.avro
gs://my-bucket/some-dir/2019-10-01/*.avro
gs://my-bucket/some-dir/2019-11-01/*.avro
gs://my-bucket/some-dir/2019-12-01/*.avro

View Diff

1a2,48
> gs://my-bucket/some-dir/2016-02-01/*.avro
> gs://my-bucket/some-dir/2016-03-01/*.avro
> gs://my-bucket/some-dir/2016-04-01/*.avro
> gs://my-bucket/some-dir/2016-05-01/*.avro
> gs://my-bucket/some-dir/2016-06-01/*.avro
> gs://my-bucket/some-dir/2016-07-01/*.avro
> gs://my-bucket/some-dir/2016-08-01/*.avro
> gs://my-bucket/some-dir/2016-09-01/*.avro
> gs://my-bucket/some-dir/2016-10-01/*.avro
> gs://my-bucket/some-dir/2016-11-01/*.avro
> gs://my-bucket/some-dir/2016-12-01/*.avro
> gs://my-bucket/some-dir/2017-01-01/*.avro
> gs://my-bucket/some-dir/2017-02-01/*.avro
> gs://my-bucket/some-dir/2017-03-01/*.avro
> gs://my-bucket/some-dir/2017-04-01/*.avro
> gs://my-bucket/some-dir/2017-05-01/*.avro
> gs://my-bucket/some-dir/2017-06-01/*.avro
> gs://my-bucket/some-dir/2017-07-01/*.avro
> gs://my-bucket/some-dir/2017-08-01/*.avro
> gs://my-bucket/some-dir/2017-09-01/*.avro
> gs://my-bucket/some-dir/2017-10-01/*.avro
> gs://my-bucket/some-dir/2017-11-01/*.avro
> gs://my-bucket/some-dir/2017-12-01/*.avro
> gs://my-bucket/some-dir/2018-01-01/*.avro
> gs://my-bucket/some-dir/2018-02-01/*.avro
> gs://my-bucket/some-dir/2018-03-01/*.avro
> gs://my-bucket/some-dir/2018-04-01/*.avro
> gs://my-bucket/some-dir/2018-05-01/*.avro
> gs://my-bucket/some-dir/2018-06-01/*.avro
> gs://my-bucket/some-dir/2018-07-01/*.avro
> gs://my-bucket/some-dir/2018-08-01/*.avro
> gs://my-bucket/some-dir/2018-09-01/*.avro
> gs://my-bucket/some-dir/2018-10-01/*.avro
> gs://my-bucket/some-dir/2018-11-01/*.avro
> gs://my-bucket/some-dir/2018-12-01/*.avro
> gs://my-bucket/some-dir/2019-01-01/*.avro
> gs://my-bucket/some-dir/2019-02-01/*.avro
> gs://my-bucket/some-dir/2019-03-01/*.avro
> gs://my-bucket/some-dir/2019-04-01/*.avro
> gs://my-bucket/some-dir/2019-05-01/*.avro
> gs://my-bucket/some-dir/2019-06-01/*.avro
> gs://my-bucket/some-dir/2019-07-01/*.avro
> gs://my-bucket/some-dir/2019-08-01/*.avro
> gs://my-bucket/some-dir/2019-09-01/*.avro
> gs://my-bucket/some-dir/2019-10-01/*.avro
> gs://my-bucket/some-dir/2019-11-01/*.avro
> gs://my-bucket/some-dir/2019-12-01/*.avro

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 87 remaining solutions by signing in and submitting your own entry
#88 Filmon Abrha / @Wedi-Nachew - Score: 415 - 11/14/24 @ 15:37
yyp/f6<BS><BS><BS>f6lll<C-A>yypf2<CR>f2<C-A>yypf3<C-A>yypf5f4<C-A>yypf6f6f5<C-A>yypf6f6<C-A>yypf7<C-A>u<C-A>u<C-A>uh<C-A><C-A><C-A><C-X><C-X><C-X>i<BS><BS><Right><BS>08<Esc>yypwwwwf8<C-A><C-A>R09-0<Esc>a1<Esc>yypf9r0<Esc>i<BS>1<Esc>yypf1f1<C-A><C-X><C-X><Esc>yyp<C-A><C-X>wwwh<C-A><C-X><C-X><Esc><Esc>ggyG12Gp/2<BS>s/<BS><BS><BS>:a<BS>s/2016/2017/g<BS><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>%<BS>13-24<BS><BS><BS>%24<Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><BS>,<CR><Esc><Down><Esc>:nohls<CR>12GyG24gG24GpGp/<BS>:25,<BS><BS><BS><BS>uu13GyGGpGp:25,27<BS><BS>37<BS>6s/2017/2018<CR>:<Up><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Right><BS><BS>36<BS>7<Right><Right><Right><Right><BS>s<Left><BS><BS>42<BS>3<BS>9<Right><Right><Right><Right><Right><Right><BS>8<Right><Right><Right><Right><Right><BS>9<CR><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down>?<BS><Up><Up><Down>:<Up><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><BS>8<CR><Up><Down>:<Up><Down><Up><Left><Left><Left><Left><Left><BS>7<CR><Down>:w<CR>ZZ

0 comments


Created by: @pacuna

88 active golfers, 360 entries

Leaderboard (lowest score wins):
60
#61 - ohwell / @KiranClose

05/10/2025 at 07:50PM

64
#62 - greg-asc / @greg-asc

06/08/2025 at 10:50PM

66
#63 - Fi McAfee / @finsqm

11/20/2024 at 01:58PM

66
#64 - se / @sairutra

12/01/2025 at 07:53AM

67
#65 - Tyler Patton / @jamestylerpatton

11/21/2025 at 09:03PM

68
#66 - Ryo3110 / @r-3110

03/08/2025 at 01:45AM

68
#67 - 0xf00ff00f / @0xf00ff00f

06/16/2025 at 06:02PM

70
#68 - Frank Benoit / @frankb_stgt

05/31/2025 at 05:24PM

71
#69 - Tobias / @tobiasldn

06/20/2025 at 08:04PM

73
#70 - Sebastian Caicedo / @jsebdev

04/19/2025 at 11:06PM

77
#71 - fpf3 / @jovial_cavalier

11/19/2024 at 09:19PM

77
#72 - ak@developer / @Ajay-056

04/20/2025 at 07:28AM

82
#73 - chujDK / @chujDK

02/21/2025 at 09:40AM

83
#74 - Sjur B. / @Apostrophel

05/24/2025 at 08:27PM

83
#75 - Dani Bengl / @cb341

12/22/2025 at 08:36PM

94
#76 - Zhenkai Weng / @tinkerrc

11/22/2024 at 01:47AM

97
#77 - countime / @countime

11/27/2024 at 12:39AM

107
#78 - JettMingin / @JettMingin

10/07/2025 at 12:54AM

109
#79 - Daniel Jahn (dahn) / @DahnJ

05/28/2025 at 11:12PM

111
#80 - floriantsf / @floriantsf

12/04/2025 at 09:01PM

113
#81 - SRINIVASU SALADI / @SRINIVASUS22587

03/12/2025 at 06:38AM

116
#82 - MegabajteN / @megabajten

08/14/2025 at 05:47PM

122
#83 - dp403aan / @dp403aan

02/02/2025 at 09:22PM

138
#84 - lovebigwei / @lovebigwei

12/19/2024 at 05:50AM

146
#85 - Heitor Dantas / @heitordnts

12/17/2024 at 02:20AM

164
#86 - Joe Reddington / @joereddington

11/20/2024 at 05:11PM

170
#87 - EthanMcGuire / @EthanMcGuire

01/03/2026 at 06:13PM

415
#88 - Filmon Abrha / @Wedi-Nachew

11/14/2024 at 03:37PM