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 56421fb1603ec626ec000003

Angular naming conventions

In angular, a directive name follows the camelCase convention. When the directive is used in an HTML template, the words are instead separated by a dash. Go from to the other the fastest!

Start file
Before I don't care greatDanesAreMyFriends After I don't care either
End file
Before I don't care great-danes-are-my-friends After I don't care either

View Diff

1c1
< Before I don't care greatDanesAreMyFriends After I don't care either
---
> Before I don't care great-danes-are-my-friends After I don't care either

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 105 remaining solutions by signing in and submitting your own entry
#106 William Ott / @oddalot - Score: 41 - 11/19/15 @ 05:36
:%s/\(\S)<BS>\)\([A-Z}<BS>]\)/\1-\L\2/g<CR>:q<CR>:wq<CR>

0 comments


#107 lonerr / @LonerrOleg - Score: 41 - 11/22/15 @ 00:48
WWWW<Right><Right><Right><Right><Right>qq~<Left>i-<Esc>q<Right><Right><Right><Right><Right><Right>@q<Right><Right><Right><Right><Right><Left>@q<Right><Right><Right>@q:x<CR>

0 comments


Created by: @raxcoi

107 active golfers, 278 entries

Leaderboard (lowest score wins):
20
#61 - merphant / @merphant

11/18/2015 at 08:00AM

20
#62 - Thomas Lovén / @thomasloven

12/09/2015 at 03:28PM

20
#63 - Sinclair Desaud / @sdesaud

01/07/2016 at 01:31AM

20
#64 - Goonoo Kim / @mctenshi

01/09/2016 at 02:31PM

20
#65 - Sergey Fedorov / @Shade30

01/13/2016 at 10:39AM

20
#66 - Peter Brynza / @v3_1

08/19/2016 at 09:28PM

20
#67 - qed / @qed13308565

07/26/2018 at 01:00AM

21
#68 - Sxcy / @SxcyX

11/06/2018 at 04:51PM

21
#69 - Lory / @Lory46845742

12/06/2019 at 02:58PM

22
#70 - Robert Goeddel / @f0rdpr3fect

11/11/2015 at 10:26PM

22
#71 - Paulo Romeira / @pauloromeira

12/07/2015 at 08:01AM

22
#72 - Durga Swaroop Perla / @durgaswaroop

02/03/2016 at 01:20PM

22
#73 - Kostas / @blackraven_13

02/23/2016 at 02:35PM

22
#74 - Andreas Carben / @meiner_eins

03/13/2016 at 10:58AM

22
#75 - John Smith / @JohnSmith448816

05/15/2016 at 03:17AM

22
#76 - Andres Araya / @arayaandresfco

05/25/2016 at 02:13PM

22
#77 - TweetDreams / @TweetMusicians

10/16/2016 at 12:29AM

22
#78 - QingyuZhao / @zhao_qingyu

11/21/2017 at 11:04AM

22
#79 - Adam Wilson / @adamlemurwilson

06/22/2019 at 09:03PM

23
#80 - Pete Sevander / @Sevanteri

11/11/2015 at 10:43AM

23
#81 - mnx / @mnxx

11/14/2015 at 08:24PM

23
#82 - retro / @tryphopp

01/12/2016 at 05:52AM

23
#83 - Cristian Lupașcu / @clupasq

02/08/2016 at 04:58PM

23
#84 - Daniel / @Daniel00288663

03/30/2017 at 02:19PM

23
#85 - phucvin / @phucvin

02/15/2018 at 04:45AM

23
#86 - JimmyGymglish / @JGymglish

01/02/2020 at 02:56PM

24
#87 - Gerald Tilma / @GeraldTilma

11/11/2015 at 04:40AM

24
#88 - Artur Taranchiev / @ewokru

11/11/2015 at 11:00AM

24
#89 - Viktor Chynarov / @vchynarov

11/12/2015 at 01:37AM

24
#90 - Cory Duplantis / @ctfhacker

11/16/2015 at 12:05AM