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

104 active golfers, 278 entries

Leaderboard (lowest score wins):
13
#61 - phaym / @phaym

10/12/2025 at 06:00PM

13
#62 - Aly Thobani / @alythobani

11/24/2025 at 10:19PM

13
#63 - Whitaker Trebella / @wtrebella

12/12/2025 at 09:12AM

14
#64 - slash-7 / @slash-7

10/11/2024 at 07:13AM

14
#65 - MatFriend / @MatFriend

10/15/2024 at 12:38AM

14
#66 - Sandro / @ksandro

10/16/2024 at 10:23PM

14
#67 - luke37842 / @luke37842

11/05/2024 at 06:40PM

14
#68 - Philipp Schilk / @schilkp

12/03/2024 at 12:18PM

14
#69 - Swaraj Dash / @swarajdash

01/03/2025 at 06:01PM

14
#70 - jonas-grobe / @jonas-grobe

04/16/2025 at 06:23PM

14
#71 - Austin / @austinlongmn

04/24/2025 at 01:13PM

14
#72 - Yordan Boikov / @yboikov

05/03/2025 at 09:53PM

14
#73 - Atharva / @atharvaM04

05/23/2025 at 09:29AM

14
#74 - Hessesian / @Hessesian

06/19/2025 at 12:07PM

14
#75 - Jesper Wallengren / @Qroop

06/25/2025 at 08:59AM

15
#76 - Philippe Carphin / @PhilippeCarphin

10/15/2024 at 01:35AM

15
#77 - Justin Fisher / @justinfisherr

11/01/2024 at 08:49PM

16
#78 - thedvd98 / @thedvd98

11/05/2024 at 09:18PM

16
#79 - Biswajit / @biswajitpatra

01/26/2025 at 03:15PM

16
#80 - Jarrod Folino / @JarrodFolinoFC

05/30/2025 at 01:59PM

17
#81 - natehershner / @natehershner

05/21/2025 at 03:30AM

18
#82 - anatolepain / @anatolepain

10/18/2024 at 01:09PM

18
#83 - Ivan Prikaznov / @Prikaz98

11/01/2024 at 03:52PM

19
#84 - Yen-Chun Chen / @YenChunChen4

10/10/2024 at 08:58PM

19
#85 - kramff / @kramff

10/18/2024 at 04:56PM

19
#86 - Matthew Cooper / @mkcmkc

06/21/2025 at 10:08AM

19
#87 - Adriano / @AdrianoAla

07/28/2025 at 10:55AM

20
#88 - Neix20 / @Neix20

10/24/2024 at 08:31AM

20
#89 - IroncladDev / @IroncladDev

10/27/2024 at 12:34PM

20
#90 - Saurav / @epicblueprints

11/09/2024 at 09:44PM