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

Change class fields from snake case to camel case

Change the class fields in this Scala class from snake case to camel case

Start file
case class User(
  id: Long,
  username: String,
  email: String,
  first_name: String,
  last_name: String,
  age: Int,
  gender: String,
  phone_number: String,
  address: String,
  city: String,
  country: String,
  postal_code: String,
  occupation: String,
  company: String,
  salary: Double,
  is_active: Boolean,
  registration_date: java.time.LocalDate,
  last_login_date: java.time.LocalDateTime,
  preferences: Map[String, String],
  roles: List[String]
)
End file
case class User(
  id: Long,
  username: String,
  email: String,
  firstName: String,
  lastName: String,
  age: Int,
  gender: String,
  phoneNumber: String,
  address: String,
  city: String,
  country: String,
  postalCode: String,
  occupation: String,
  company: String,
  salary: Double,
  isActive: Boolean,
  registrationDate: java.time.LocalDate,
  lastLoginDate: java.time.LocalDateTime,
  preferences: Map[String, String],
  roles: List[String]
)

View Diff

5,6c5,6
<   first_name: String,
<   last_name: String,
---
>   firstName: String,
>   lastName: String,
9c9
<   phone_number: String,
---
>   phoneNumber: String,
13c13
<   postal_code: String,
---
>   postalCode: String,
17,19c17,19
<   is_active: Boolean,
<   registration_date: java.time.LocalDate,
<   last_login_date: java.time.LocalDateTime,
---
>   isActive: Boolean,
>   registrationDate: java.time.LocalDate,
>   lastLoginDate: java.time.LocalDateTime,

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 107 remaining solutions by signing in and submitting your own entry
#108 mike / @mikevux262 - Score: 263 - 04/25/25 @ 13:01
<Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up><Up>:<50-53><50-53>:%s/\(_\)\(\w\)/\u\2/g<<Esc>[201~<CR>:<BS><50-53>:%s/\(_\)\(\w\)/\u\2/g<Esc>[201~u:<50-53>:%s/\(_\)\(\w\)/\u\2/g<Esc>[201~<Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><BS><BS><BS><Right><Insert><BS><Right><Left><Left><Left><.<BS><BS><BS><BS><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><BS>:<BS>:<50-53>:%s/\(_\)\(\w\)/\u\2/g<Esc>[201~<Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Down><BS><CR>:wq!<CR>

0 comments


Created by: @pacuna

108 active golfers, 290 entries

Leaderboard (lowest score wins):
13
#31 - M S Dheeraj Murthy / @Dheeraj-Murthy

11/14/2024 at 06:46AM

13
#32 - Danilo J. S. Bellini 🥊🇧🇷 / @danilobellini

11/23/2024 at 02:02AM

13
#33 - DavidJArnold / @DavidJArnold

11/26/2024 at 11:12AM

13
#34 - Realia / @realia

12/13/2024 at 01:54AM

13
#35 - 0xf00ff00f / @0xf00ff00f

01/09/2025 at 11:56PM

13
#36 - Magnus Wahlstrand / @magnuswahlstrand

01/12/2025 at 08:34AM

13
#37 - George Golubev / @george-gol

01/17/2025 at 04:04PM

13
#38 - Pa7shohG / @Pa7shohG

01/25/2025 at 03:49PM

13
#39 - Alexander Cai / @adzcai

02/01/2025 at 05:08PM

13
#40 - Paroxyss / @Paroxyss

02/12/2025 at 01:16PM

13
#41 - chujDK / @chujDK

03/05/2025 at 02:09AM

13
#42 - Abdelrahman Madkour / @a3madkour

04/04/2025 at 12:15PM

13
#43 - Zsanett Ferenczi / @ferenczizsani

04/10/2025 at 09:53AM

13
#44 - mojito04 / @mojito04

04/25/2025 at 08:54PM

13
#45 - Gigo / @GiggioG

04/29/2025 at 09:14AM

13
#46 - Christof Gehrig / @christofgehrig

04/29/2025 at 04:24PM

13
#47 - Trendt / @Trendt

05/08/2025 at 02:53PM

13
#48 - jimmymills / @jimmymills

05/10/2025 at 04:52AM

13
#49 - Chiaso / @Chikalona

05/16/2025 at 08:09PM

13
#50 - Damien Baldy / @dbaldy

05/19/2025 at 01:12PM

13
#51 - Leon Kacowicz / @leonkacowicz

05/22/2025 at 12:08PM

13
#52 - winter-loo / @winter-loo

05/29/2025 at 04:33AM

13
#53 - greg-asc / @greg-asc

06/06/2025 at 11:00PM

13
#54 - raylmorris / @raylmorris

06/20/2025 at 04:06AM

13
#55 - Ed Leafe / @EdLeafe

06/26/2025 at 09:47PM

13
#56 - Henry Coggins / @hcoggins

07/06/2025 at 08:58AM

13
#57 - Breemskin / @Breemskin

07/25/2025 at 08:45PM

13
#58 - Pierre Senellart / @PierreSenellart

08/05/2025 at 06:01AM

13
#59 - petr-kx / @petr-kx

08/20/2025 at 06:53PM

13
#60 - Ryan Woods / @Guitaryan93

09/12/2025 at 02:45PM