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

Change class fields from camel case to snake case

This is the reverse of the previous challenge: https://www.vimgolf.com/challenges/9v006705493c000000000513

Start 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]
)
End 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]
)

View Diff

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

Solutions by @GavinKoeng:

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

132 active golfers, 568 entries

Solutions by @GavinKoeng:
18
#39 - Gavin / @GavinKoeng

11/25/2025 at 05:55PM

19
#>50 - Gavin / @GavinKoeng

11/25/2025 at 05:54PM

20
#>54 - Gavin / @GavinKoeng

11/25/2025 at 05:53PM

21
#>59 - Gavin / @GavinKoeng

11/25/2025 at 05:52PM

22
#>71 - Gavin / @GavinKoeng

11/25/2025 at 05:50PM

23
#>77 - Gavin / @GavinKoeng

11/25/2025 at 05:48PM

30
#>91 - Gavin / @GavinKoeng

11/25/2025 at 05:46PM

31
#>93 - Gavin / @GavinKoeng

11/25/2025 at 05:41PM

32
#>94 - Gavin / @GavinKoeng

11/25/2025 at 05:38PM

34
#>94 - Gavin / @GavinKoeng

11/25/2025 at 05:34PM

45
#>106 - Gavin / @GavinKoeng

11/25/2025 at 05:33PM

52
#>112 - Gavin / @GavinKoeng

11/25/2025 at 05:23PM

55
#>114 - Gavin / @GavinKoeng

11/25/2025 at 05:22PM

57
#>114 - Gavin / @GavinKoeng

11/25/2025 at 05:19PM

67
#>118 - Gavin / @GavinKoeng

11/25/2025 at 05:17PM

68
#>118 - Gavin / @GavinKoeng

11/25/2025 at 05:14PM

72
#>120 - Gavin / @GavinKoeng

11/25/2025 at 05:13PM