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 by @adrianlgtm:

Unlock 7 remaining solutions by signing in and submitting your own entry
Created by: @pacuna

118 active golfers, 315 entries

Solutions by @adrianlgtm:
13
#72 - Adrian / @adrianlgtm

04/26/2026 at 06:13AM

16
#>91 - Adrian / @adrianlgtm

04/26/2026 at 06:13AM

19
#>99 - Adrian / @adrianlgtm

04/26/2026 at 06:08AM

19
#>99 - Adrian / @adrianlgtm

04/26/2026 at 06:11AM

19
#>99 - Adrian / @adrianlgtm

04/26/2026 at 06:12AM

20
#>106 - Adrian / @adrianlgtm

04/26/2026 at 06:07AM

24
#>111 - Adrian / @adrianlgtm

04/26/2026 at 06:07AM