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 4e9edef5cef4c50001000007

PHP Array Syntax -> MailChimp Merge Syntax

I recently needed to send an e-mail to our marketing department listing allowed merge tags for our MailChimp campaigns. The allowed merge tags were determined from a PHP array in one of our PHP classes. I transformed the PHP class to MailChimp's syntax and sent the e-mail. It was, however, a long, laborious process. I'm still fairly new to Vim and would love to see how an expert Vim user would tackle one of my own, real-world problems. Thanks and have fun!

Start file
$allowed = array("PIN", "Prefix", "LastName", "FirstName", "MiddleName", 
  "Address1", "Address2", "City", "State", "Zip", "Country", "phone", "mobile",
  "Email", "MothersMaiden", "security1_id", "security1_answer", 
  "security2_id", "security2_answer", "BirthDate", 
  "flag1", "DriversLicense", "gender");
End file
*|PIN|*
*|Prefix|*
*|LastName|*
*|FirstName|*
*|MiddleName|*
*|Address1|*
*|Address2|*
*|City|*
*|State|*
*|Zip|*
*|Country|*
*|phone|*
*|mobile|*
*|Email|*
*|MothersMaiden|*
*|security1_id|*
*|security1_answer|*
*|security2_id|*
*|security2_answer|*
*|BirthDate|*
*|flag1|*
*|DriversLicense|*
*|gender|*

View Diff

1,5c1,23
< $allowed = array("PIN", "Prefix", "LastName", "FirstName", "MiddleName", 
<   "Address1", "Address2", "City", "State", "Zip", "Country", "phone", "mobile",
<   "Email", "MothersMaiden", "security1_id", "security1_answer", 
<   "security2_id", "security2_answer", "BirthDate", 
<   "flag1", "DriversLicense", "gender");
---
> *|PIN|*
> *|Prefix|*
> *|LastName|*
> *|FirstName|*
> *|MiddleName|*
> *|Address1|*
> *|Address2|*
> *|City|*
> *|State|*
> *|Zip|*
> *|Country|*
> *|phone|*
> *|mobile|*
> *|Email|*
> *|MothersMaiden|*
> *|security1_id|*
> *|security1_answer|*
> *|security2_id|*
> *|security2_answer|*
> *|BirthDate|*
> *|flag1|*
> *|DriversLicense|*
> *|gender|*

Solutions by @nickandbro:

Unlock 37 remaining solutions by signing in and submitting your own entry
Created by: @meekish

151 active golfers, 550 entries

Solutions by @nickandbro:
23
#30 - nickGPT / @nickandbro

08/28/2024 at 10:30PM

24
#>47 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

25
#>58 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

26
#>59 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

27
#>67 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

28
#>69 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

29
#>71 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

30
#>75 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

31
#>77 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

32
#>81 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

33
#>88 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

34
#>94 - nickGPT / @nickandbro

08/28/2024 at 10:29PM

35
#>97 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

36
#>98 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

37
#>100 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

38
#>103 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

39
#>105 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

40
#>108 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

41
#>110 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

42
#>111 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

43
#>114 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

44
#>117 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

45
#>121 - nickGPT / @nickandbro

08/28/2024 at 10:28PM

46
#>124 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

49
#>125 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

50
#>127 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

51
#>130 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

52
#>136 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

53
#>141 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

55
#>143 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

57
#>144 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

59
#>144 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

62
#>146 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

63
#>147 - nickGPT / @nickandbro

08/28/2024 at 10:27PM

66
#>149 - nickGPT / @nickandbro

08/28/2024 at 10:26PM

168
#>150 - nickGPT / @nickandbro

08/28/2024 at 10:26PM

245
#>150 - nickGPT / @nickandbro

08/28/2024 at 10:26PM