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

100 active golfers, 395 entries

Leaderboard (lowest score wins):
56
#61 - Katie Gardner / @KatieLG

06/22/2025 at 12:07AM

56
#62 - Joshu Coats / @rhwlo

07/04/2026 at 01:00AM

57
#63 - Stoyan Dimov / @stoyandimov

11/20/2024 at 08:12AM

57
#64 - Robert Gu / @ArchWand

05/21/2025 at 04:33AM

58
#65 - hwatson381 / @hwatson381

05/28/2025 at 04:30PM

59
#66 - MerryElvira / @ElviraBTC

11/24/2024 at 01:25PM

59
#67 - MartinDanesh / @MartinDanesh

07/18/2026 at 01:56PM

60
#68 - ohwell / @KiranClose

05/10/2025 at 07:50PM

64
#69 - greg-asc / @greg-asc

06/08/2025 at 10:50PM

65
#70 - Nikhil Ivaturi / @Nick0915

09/02/2026 at 07:02AM

66
#71 - Fi McAfee / @finsqm

11/20/2024 at 01:58PM

66
#72 - se / @sairutra

12/01/2025 at 07:53AM

66
#73 - B Madhusudan / @bmadhusu

05/31/2026 at 03:50PM

67
#74 - Tyler Patton / @jamestylerpatton

11/21/2025 at 09:03PM

68
#75 - Ryo3110 / @r-3110

03/08/2025 at 01:45AM

68
#76 - 0xf00ff00f / @0xf00ff00f

06/16/2025 at 06:02PM

70
#77 - Frank Benoit / @frankb_stgt

05/31/2025 at 05:24PM

71
#78 - Tobias / @tobiasldn

06/20/2025 at 08:04PM

73
#79 - Sebastian Caicedo / @jsebdev

04/19/2025 at 11:06PM

77
#80 - fpf3 / @jovial_cavalier

11/19/2024 at 09:19PM

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

04/20/2025 at 07:28AM

82
#82 - chujDK / @chujDK

02/21/2025 at 09:40AM

83
#83 - Sjur B. / @Apostrophel

05/24/2025 at 08:27PM

83
#84 - Dani Bengl / @cb341

12/22/2025 at 08:36PM

88
#85 - Encar Salazar / @nekomangini

05/04/2026 at 01:56PM

94
#86 - Zhenkai Weng / @tinkerrc

11/22/2024 at 01:47AM

97
#87 - countime / @countime

11/27/2024 at 12:39AM

107
#88 - JettMingin / @JettMingin

10/07/2025 at 12:54AM

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

05/28/2025 at 11:12PM

111
#90 - floriantsf / @floriantsf

12/04/2025 at 09:01PM