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


#118 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

118 active golfers, 320 entries

Leaderboard (lowest score wins):
19
#61 - James / @Dronak

08/27/2017 at 01:33AM

19
#62 - Alex / @AlexanderHeatl2

07/07/2022 at 09:24PM

19
#63 - Olivier Bégassat / @zk_evm

06/13/2023 at 11:41AM

19
#64 - jonas-grobe / @jonas-grobe

02/04/2024 at 11:27AM

19
#65 - bonettimrc / @bonettimrc

04/28/2024 at 10:38AM

20
#66 - Tim Chase / @gumnos

11/10/2015 at 05:03PM

20
#67 - territorialmale / @territorialmale

11/16/2015 at 08:35AM

20
#68 - mrytsr / @mrytsr

11/16/2015 at 03:42PM

20
#69 - merphant / @merphant

11/18/2015 at 08:00AM

20
#70 - Thomas Lovén / @thomasloven

12/09/2015 at 03:28PM

20
#71 - Sinclair Desaud / @sdesaud

01/07/2016 at 01:31AM

20
#72 - Goonoo Kim / @mctenshi

01/09/2016 at 02:31PM

20
#73 - Sergey Fedorov / @Shade30

01/13/2016 at 10:39AM

20
#74 - Peter Brynza / @v3_1

08/19/2016 at 09:28PM

20
#75 - qed / @qed13308565

07/26/2018 at 01:00AM

21
#76 - Sxcy / @SxcyX

11/06/2018 at 04:51PM

21
#77 - Lory / @Lory46845742

12/06/2019 at 02:58PM

22
#78 - Robert Goeddel / @f0rdpr3fect

11/11/2015 at 10:26PM

22
#79 - Paulo Romeira / @pauloromeira

12/07/2015 at 08:01AM

22
#80 - Durga Swaroop Perla / @durgaswaroop

02/03/2016 at 01:20PM

22
#81 - Kostas / @blackraven_13

02/23/2016 at 02:35PM

22
#82 - Andreas Carben / @meiner_eins

03/13/2016 at 10:58AM

22
#83 - John Smith / @JohnSmith448816

05/15/2016 at 03:17AM

22
#84 - Andres Araya / @arayaandresfco

05/25/2016 at 02:13PM

22
#85 - TweetDreams / @TweetMusicians

10/16/2016 at 12:29AM

22
#86 - QingyuZhao / @zhao_qingyu

11/21/2017 at 11:04AM

22
#87 - Adam Wilson / @adamlemurwilson

06/22/2019 at 09:03PM

22
#88 - vimgolfaccfekxh / @vimgolfaccfekxh

10/30/2022 at 06:29PM

23
#89 - Pete Sevander / @Sevanteri

11/11/2015 at 10:43AM

23
#90 - mnx / @mnxx

11/14/2015 at 08:24PM