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

Convert list of enums to list of localization terms

While making my game Piloteer, I had a large list of TaskTypes and needed to convert them to an equivalent list of localization terms, to be used when translating the game's text into different languages.

Start file
public enum TaskType
{
	// Course 1 Task Types
	C1_FlipThenHotdog = 0,
	C1_CloudFlips = 1,
	C1_Fly2Seconds = 2,
	C1_Fly5Seconds = 3,
	C1_Fly10Seconds = 4,
	C1_OverTheBench = 5,
	C1_IceCream = 6,
	C1_Backflip = 7,
	C1_FrontFlip = 8,
	C1_TwoFrontFlipsThenFountain = 9,
	C1_PILOTEER = 10,
	C1_Entire = 11,
	C1_Hoops1 = 12,
	C1_Hoops2 = 13,
	C1_Hoops3 = 14,
	C1_FlyLeft = 15,
	C1_Newspaper = 16,
	C1_ToTheSky = 17,
	C1_LifeguardTest = 18,
	C1_JustInTime = 19,

	// Course 2 Task Types
	C2_LandOnCar = 20,
	C2_Entire = 21,
	C2_FallFlip = 22,
	C2_PILOTEER = 23,
	C2_1Bird = 24,
	C2_2Birds = 25,
	C2_5Birds = 26,
	C2_CarToBoatInUnder7 = 27,
	C2_BenchToBench = 28,
	C2_BenchToDock1 = 29,
	C2_BenchToDock2 = 30,
	C2_Hoops1 = 31,
	C2_Hoops2 = 32,
	C2_Hoops3 = 33,
	C2_FlipsOnBuoy = 34,
	C2_BenchTreeDockWithFlips = 35,
	C2_PolesDockCarWithFlips = 36,
	C2_MailToDockInUnder10 = 37,
	C2_BoatPolesBuoyWithWaterTouches = 38,
	C2_MailToBoatOver6Under7 = 39,

	// Course 3 Task Types
	C3_PlaneToBuoyWithFlipInUnder4 = 40,
	C3_TrashcanToBalloonToCarInUnder12 = 41,
	C3_EastBenchToFerrisUnder3 = 42,
	C3_BoatToBalloonInUnder10 = 43,
	C3_BoatToPlaneToCarInUnder15 = 44,
	C3_BenchToBenchInOver8Under9 = 45,
	C3_LandOnPlane = 46,
	C3_LandOnBoat = 47,
	C3_BenchToPlaneToBoatToDockWithFlipsAndWaterTouches = 48,
	C3_BenchToTrashcanToTurbine = 49,
	C3_BalloonToFerrisInUnder3 = 50,
	C3_DockToCarToBalloonToPlane = 51,
	C3_Entire = 52,
	C3_FerrisToWaterToFerris = 53,
	C3_Hoops1 = 54,
	C3_Hoops2 = 55,
	C3_Hoops3 = 56,
	C3_FerrisToDockWith10Birds = 57,
	C3_PILOTEER = 58,
	C3_OverTheHill = 59,

	// Course Training Task Types
	CTraining_BasicFlight = 60,
	CTraining_ExtendedFlight = 61,
	CTraining_PrecisionLanding = 62,
	CTraining_PrecisionLandingWithCrash = 63,
	CTraining_DirectionChange = 64,
	CTraining_SuccessiveLandings = 65,
	CTraining_FlyHigher = 66,
	CTraining_PrecisionMovements = 67,
	CTraining_FrontFlip = 68,
	CTraining_BackFlip = 69,

	NONE = 70
}
End file
public static class LocalizationTerms
{
	// Course 1 Terms
	public const string C1_FLIPTHENHOTDOG = "C1_FlipThenHotdog";
	public const string C1_CLOUDFLIPS = "C1_CloudFlips";
	public const string C1_FLY2SECONDS = "C1_Fly2Seconds";
	public const string C1_FLY5SECONDS = "C1_Fly5Seconds";
	public const string C1_FLY10SECONDS = "C1_Fly10Seconds";
	public const string C1_OVERTHEBENCH = "C1_OverTheBench";
	public const string C1_ICECREAM = "C1_IceCream";
	public const string C1_BACKFLIP = "C1_Backflip";
	public const string C1_FRONTFLIP = "C1_FrontFlip";
	public const string C1_TWOFRONTFLIPSTHENFOUNTAIN = "C1_TwoFrontFlipsThenFountain";
	public const string C1_PILOTEER = "C1_PILOTEER";
	public const string C1_ENTIRE = "C1_Entire";
	public const string C1_HOOPS1 = "C1_Hoops1";
	public const string C1_HOOPS2 = "C1_Hoops2";
	public const string C1_HOOPS3 = "C1_Hoops3";
	public const string C1_FLYLEFT = "C1_FlyLeft";
	public const string C1_NEWSPAPER = "C1_Newspaper";
	public const string C1_TOTHESKY = "C1_ToTheSky";
	public const string C1_LIFEGUARDTEST = "C1_LifeguardTest";
	public const string C1_JUSTINTIME = "C1_JustInTime";

	// Course 2 Terms
	public const string C2_LANDONCAR = "C2_LandOnCar";
	public const string C2_ENTIRE = "C2_Entire";
	public const string C2_FALLFLIP = "C2_FallFlip";
	public const string C2_PILOTEER = "C2_PILOTEER";
	public const string C2_1BIRD = "C2_1Bird";
	public const string C2_2BIRDS = "C2_2Birds";
	public const string C2_5BIRDS = "C2_5Birds";
	public const string C2_CARTOBOATINUNDER7 = "C2_CarToBoatInUnder7";
	public const string C2_BENCHTOBENCH = "C2_BenchToBench";
	public const string C2_BENCHTODOCK1 = "C2_BenchToDock1";
	public const string C2_BENCHTODOCK2 = "C2_BenchToDock2";
	public const string C2_HOOPS1 = "C2_Hoops1";
	public const string C2_HOOPS2 = "C2_Hoops2";
	public const string C2_HOOPS3 = "C2_Hoops3";
	public const string C2_FLIPSONBUOY = "C2_FlipsOnBuoy";
	public const string C2_BENCHTREEDOCKWITHFLIPS = "C2_BenchTreeDockWithFlips";
	public const string C2_POLESDOCKCARWITHFLIPS = "C2_PolesDockCarWithFlips";
	public const string C2_MAILTODOCKINUNDER10 = "C2_MailToDockInUnder10";
	public const string C2_BOATPOLESBUOYWITHWATERTOUCHES = "C2_BoatPolesBuoyWithWaterTouches";
	public const string C2_MAILTOBOATOVER6UNDER7 = "C2_MailToBoatOver6Under7";

	// Course 3 Terms
	public const string C3_PLANETOBUOYWITHFLIPINUNDER4 = "C3_PlaneToBuoyWithFlipInUnder4";
	public const string C3_TRASHCANTOBALLOONTOCARINUNDER12 = "C3_TrashcanToBalloonToCarInUnder12";
	public const string C3_EASTBENCHTOFERRISUNDER3 = "C3_EastBenchToFerrisUnder3";
	public const string C3_BOATTOBALLOONINUNDER10 = "C3_BoatToBalloonInUnder10";
	public const string C3_BOATTOPLANETOCARINUNDER15 = "C3_BoatToPlaneToCarInUnder15";
	public const string C3_BENCHTOBENCHINOVER8UNDER9 = "C3_BenchToBenchInOver8Under9";
	public const string C3_LANDONPLANE = "C3_LandOnPlane";
	public const string C3_LANDONBOAT = "C3_LandOnBoat";
	public const string C3_BENCHTOPLANETOBOATTODOCKWITHFLIPSANDWATERTOUCHES = "C3_BenchToPlaneToBoatToDockWithFlipsAndWaterTouches";
	public const string C3_BENCHTOTRASHCANTOTURBINE = "C3_BenchToTrashcanToTurbine";
	public const string C3_BALLOONTOFERRISINUNDER3 = "C3_BalloonToFerrisInUnder3";
	public const string C3_DOCKTOCARTOBALLOONTOPLANE = "C3_DockToCarToBalloonToPlane";
	public const string C3_ENTIRE = "C3_Entire";
	public const string C3_FERRISTOWATERTOFERRIS = "C3_FerrisToWaterToFerris";
	public const string C3_HOOPS1 = "C3_Hoops1";
	public const string C3_HOOPS2 = "C3_Hoops2";
	public const string C3_HOOPS3 = "C3_Hoops3";
	public const string C3_FERRISTODOCKWITH10BIRDS = "C3_FerrisToDockWith10Birds";
	public const string C3_PILOTEER = "C3_PILOTEER";
	public const string C3_OVERTHEHILL = "C3_OverTheHill";

	// Course Training Terms
	public const string CTRAINING_BASICFLIGHT = "CTraining_BasicFlight";
	public const string CTRAINING_EXTENDEDFLIGHT = "CTraining_ExtendedFlight";
	public const string CTRAINING_PRECISIONLANDING = "CTraining_PrecisionLanding";
	public const string CTRAINING_PRECISIONLANDINGWITHCRASH = "CTraining_PrecisionLandingWithCrash";
	public const string CTRAINING_DIRECTIONCHANGE = "CTraining_DirectionChange";
	public const string CTRAINING_SUCCESSIVELANDINGS = "CTraining_SuccessiveLandings";
	public const string CTRAINING_FLYHIGHER = "CTraining_FlyHigher";
	public const string CTRAINING_PRECISIONMOVEMENTS = "CTraining_PrecisionMovements";
	public const string CTRAINING_FRONTFLIP = "CTraining_FrontFlip";
	public const string CTRAINING_BACKFLIP = "CTraining_BackFlip";
}

View Diff

1c1
< public enum TaskType
---
> public static class LocalizationTerms
3,23c3,23
< 	// Course 1 Task Types
< 	C1_FlipThenHotdog = 0,
< 	C1_CloudFlips = 1,
< 	C1_Fly2Seconds = 2,
< 	C1_Fly5Seconds = 3,
< 	C1_Fly10Seconds = 4,
< 	C1_OverTheBench = 5,
< 	C1_IceCream = 6,
< 	C1_Backflip = 7,
< 	C1_FrontFlip = 8,
< 	C1_TwoFrontFlipsThenFountain = 9,
< 	C1_PILOTEER = 10,
< 	C1_Entire = 11,
< 	C1_Hoops1 = 12,
< 	C1_Hoops2 = 13,
< 	C1_Hoops3 = 14,
< 	C1_FlyLeft = 15,
< 	C1_Newspaper = 16,
< 	C1_ToTheSky = 17,
< 	C1_LifeguardTest = 18,
< 	C1_JustInTime = 19,
---
> 	// Course 1 Terms
> 	public const string C1_FLIPTHENHOTDOG = "C1_FlipThenHotdog";
> 	public const string C1_CLOUDFLIPS = "C1_CloudFlips";
> 	public const string C1_FLY2SECONDS = "C1_Fly2Seconds";
> 	public const string C1_FLY5SECONDS = "C1_Fly5Seconds";
> 	public const string C1_FLY10SECONDS = "C1_Fly10Seconds";
> 	public const string C1_OVERTHEBENCH = "C1_OverTheBench";
> 	public const string C1_ICECREAM = "C1_IceCream";
> 	public const string C1_BACKFLIP = "C1_Backflip";
> 	public const string C1_FRONTFLIP = "C1_FrontFlip";
> 	public const string C1_TWOFRONTFLIPSTHENFOUNTAIN = "C1_TwoFrontFlipsThenFountain";
> 	public const string C1_PILOTEER = "C1_PILOTEER";
> 	public const string C1_ENTIRE = "C1_Entire";
> 	public const string C1_HOOPS1 = "C1_Hoops1";
> 	public const string C1_HOOPS2 = "C1_Hoops2";
> 	public const string C1_HOOPS3 = "C1_Hoops3";
> 	public const string C1_FLYLEFT = "C1_FlyLeft";
> 	public const string C1_NEWSPAPER = "C1_Newspaper";
> 	public const string C1_TOTHESKY = "C1_ToTheSky";
> 	public const string C1_LIFEGUARDTEST = "C1_LifeguardTest";
> 	public const string C1_JUSTINTIME = "C1_JustInTime";
25,45c25,45
< 	// Course 2 Task Types
< 	C2_LandOnCar = 20,
< 	C2_Entire = 21,
< 	C2_FallFlip = 22,
< 	C2_PILOTEER = 23,
< 	C2_1Bird = 24,
< 	C2_2Birds = 25,
< 	C2_5Birds = 26,
< 	C2_CarToBoatInUnder7 = 27,
< 	C2_BenchToBench = 28,
< 	C2_BenchToDock1 = 29,
< 	C2_BenchToDock2 = 30,
< 	C2_Hoops1 = 31,
< 	C2_Hoops2 = 32,
< 	C2_Hoops3 = 33,
< 	C2_FlipsOnBuoy = 34,
< 	C2_BenchTreeDockWithFlips = 35,
< 	C2_PolesDockCarWithFlips = 36,
< 	C2_MailToDockInUnder10 = 37,
< 	C2_BoatPolesBuoyWithWaterTouches = 38,
< 	C2_MailToBoatOver6Under7 = 39,
---
> 	// Course 2 Terms
> 	public const string C2_LANDONCAR = "C2_LandOnCar";
> 	public const string C2_ENTIRE = "C2_Entire";
> 	public const string C2_FALLFLIP = "C2_FallFlip";
> 	public const string C2_PILOTEER = "C2_PILOTEER";
> 	public const string C2_1BIRD = "C2_1Bird";
> 	public const string C2_2BIRDS = "C2_2Birds";
> 	public const string C2_5BIRDS = "C2_5Birds";
> 	public const string C2_CARTOBOATINUNDER7 = "C2_CarToBoatInUnder7";
> 	public const string C2_BENCHTOBENCH = "C2_BenchToBench";
> 	public const string C2_BENCHTODOCK1 = "C2_BenchToDock1";
> 	public const string C2_BENCHTODOCK2 = "C2_BenchToDock2";
> 	public const string C2_HOOPS1 = "C2_Hoops1";
> 	public const string C2_HOOPS2 = "C2_Hoops2";
> 	public const string C2_HOOPS3 = "C2_Hoops3";
> 	public const string C2_FLIPSONBUOY = "C2_FlipsOnBuoy";
> 	public const string C2_BENCHTREEDOCKWITHFLIPS = "C2_BenchTreeDockWithFlips";
> 	public const string C2_POLESDOCKCARWITHFLIPS = "C2_PolesDockCarWithFlips";
> 	public const string C2_MAILTODOCKINUNDER10 = "C2_MailToDockInUnder10";
> 	public const string C2_BOATPOLESBUOYWITHWATERTOUCHES = "C2_BoatPolesBuoyWithWaterTouches";
> 	public const string C2_MAILTOBOATOVER6UNDER7 = "C2_MailToBoatOver6Under7";
47,67c47,67
< 	// Course 3 Task Types
< 	C3_PlaneToBuoyWithFlipInUnder4 = 40,
< 	C3_TrashcanToBalloonToCarInUnder12 = 41,
< 	C3_EastBenchToFerrisUnder3 = 42,
< 	C3_BoatToBalloonInUnder10 = 43,
< 	C3_BoatToPlaneToCarInUnder15 = 44,
< 	C3_BenchToBenchInOver8Under9 = 45,
< 	C3_LandOnPlane = 46,
< 	C3_LandOnBoat = 47,
< 	C3_BenchToPlaneToBoatToDockWithFlipsAndWaterTouches = 48,
< 	C3_BenchToTrashcanToTurbine = 49,
< 	C3_BalloonToFerrisInUnder3 = 50,
< 	C3_DockToCarToBalloonToPlane = 51,
< 	C3_Entire = 52,
< 	C3_FerrisToWaterToFerris = 53,
< 	C3_Hoops1 = 54,
< 	C3_Hoops2 = 55,
< 	C3_Hoops3 = 56,
< 	C3_FerrisToDockWith10Birds = 57,
< 	C3_PILOTEER = 58,
< 	C3_OverTheHill = 59,
---
> 	// Course 3 Terms
> 	public const string C3_PLANETOBUOYWITHFLIPINUNDER4 = "C3_PlaneToBuoyWithFlipInUnder4";
> 	public const string C3_TRASHCANTOBALLOONTOCARINUNDER12 = "C3_TrashcanToBalloonToCarInUnder12";
> 	public const string C3_EASTBENCHTOFERRISUNDER3 = "C3_EastBenchToFerrisUnder3";
> 	public const string C3_BOATTOBALLOONINUNDER10 = "C3_BoatToBalloonInUnder10";
> 	public const string C3_BOATTOPLANETOCARINUNDER15 = "C3_BoatToPlaneToCarInUnder15";
> 	public const string C3_BENCHTOBENCHINOVER8UNDER9 = "C3_BenchToBenchInOver8Under9";
> 	public const string C3_LANDONPLANE = "C3_LandOnPlane";
> 	public const string C3_LANDONBOAT = "C3_LandOnBoat";
> 	public const string C3_BENCHTOPLANETOBOATTODOCKWITHFLIPSANDWATERTOUCHES = "C3_BenchToPlaneToBoatToDockWithFlipsAndWaterTouches";
> 	public const string C3_BENCHTOTRASHCANTOTURBINE = "C3_BenchToTrashcanToTurbine";
> 	public const string C3_BALLOONTOFERRISINUNDER3 = "C3_BalloonToFerrisInUnder3";
> 	public const string C3_DOCKTOCARTOBALLOONTOPLANE = "C3_DockToCarToBalloonToPlane";
> 	public const string C3_ENTIRE = "C3_Entire";
> 	public const string C3_FERRISTOWATERTOFERRIS = "C3_FerrisToWaterToFerris";
> 	public const string C3_HOOPS1 = "C3_Hoops1";
> 	public const string C3_HOOPS2 = "C3_Hoops2";
> 	public const string C3_HOOPS3 = "C3_Hoops3";
> 	public const string C3_FERRISTODOCKWITH10BIRDS = "C3_FerrisToDockWith10Birds";
> 	public const string C3_PILOTEER = "C3_PILOTEER";
> 	public const string C3_OVERTHEHILL = "C3_OverTheHill";
69,81c69,79
< 	// Course Training Task Types
< 	CTraining_BasicFlight = 60,
< 	CTraining_ExtendedFlight = 61,
< 	CTraining_PrecisionLanding = 62,
< 	CTraining_PrecisionLandingWithCrash = 63,
< 	CTraining_DirectionChange = 64,
< 	CTraining_SuccessiveLandings = 65,
< 	CTraining_FlyHigher = 66,
< 	CTraining_PrecisionMovements = 67,
< 	CTraining_FrontFlip = 68,
< 	CTraining_BackFlip = 69,
< 
< 	NONE = 70
---
> 	// Course Training Terms
> 	public const string CTRAINING_BASICFLIGHT = "CTraining_BasicFlight";
> 	public const string CTRAINING_EXTENDEDFLIGHT = "CTraining_ExtendedFlight";
> 	public const string CTRAINING_PRECISIONLANDING = "CTraining_PrecisionLanding";
> 	public const string CTRAINING_PRECISIONLANDINGWITHCRASH = "CTraining_PrecisionLandingWithCrash";
> 	public const string CTRAINING_DIRECTIONCHANGE = "CTraining_DirectionChange";
> 	public const string CTRAINING_SUCCESSIVELANDINGS = "CTraining_SuccessiveLandings";
> 	public const string CTRAINING_FLYHIGHER = "CTraining_FlyHigher";
> 	public const string CTRAINING_PRECISIONMOVEMENTS = "CTraining_PrecisionMovements";
> 	public const string CTRAINING_FRONTFLIP = "CTraining_FrontFlip";
> 	public const string CTRAINING_BACKFLIP = "CTraining_BackFlip";

Solutions by @wtrebella:

Unlock 2 remaining solutions by signing in and submitting your own entry
Created by: @wtrebella

9 active golfers, 20 entries

Solutions by @wtrebella:
86
#2 - Whitaker Trebella / @wtrebella

12/20/2025 at 02:40AM

141
#>8 - Whitaker Trebella / @wtrebella

12/16/2025 at 03:31AM