У меня есть массив состояний, которые никто не собирается изменять часто, поэтому я хочу удалить пустое пространство.vim macro до тех пор, пока шаблон не будет соответствовать
Я попытался следующие комбинации клавиш, поскольку есть некоторые символы пробела между запятыми в массиве и лицевым линиям:
q
a
/,
ENTER
FORWARD
v
/\n
ENTER
d
К сожалению, кто бы ни отформатированных это заброшенные на месте любые пробелы после «Монтаны», поэтому, когда я запускаю макрос [email protected]
, он прерывается после 27 итераций.
Как я могу создать макрос, только если шаблон \s
соответствует или еще лучше, как запустить макрос до тех пор, пока он не распознает );
(конец массива).
EDIT: Вот пример. Обратите внимание на два пробела после всех записей, кроме ключей MT
, NE
, NV
и NH
.
$state_list = array('AL'=>"Alabama",
'AK'=>"Alaska",
'AZ'=>"Arizona",
'AR'=>"Arkansas",
'CA'=>"California",
'CO'=>"Colorado",
'CT'=>"Connecticut",
'DE'=>"Delaware",
'DC'=>"District Of Columbia",
'FL'=>"Florida",
'GA'=>"Georgia",
'HI'=>"Hawaii",
'ID'=>"Idaho",
'IL'=>"Illinois",
'IN'=>"Indiana",
'IA'=>"Iowa",
'KS'=>"Kansas",
'KY'=>"Kentucky",
'LA'=>"Louisiana",
'ME'=>"Maine",
'MD'=>"Maryland",
'MA'=>"Massachusetts",
'MI'=>"Michigan",
'MN'=>"Minnesota",
'MS'=>"Mississippi",
'MO'=>"Missouri",
'MT'=>"Montana",
'NE'=>"Nebraska",
'NV'=>"Nevada",
'NH'=>"New Hampshire",
'NJ'=>"New Jersey",
'NM'=>"New Mexico",
'NY'=>"New York",
'NC'=>"North Carolina",
'ND'=>"North Dakota",
'OH'=>"Ohio",
'OK'=>"Oklahoma",
'OR'=>"Oregon",
'PA'=>"Pennsylvania",
'RI'=>"Rhode Island",
'SC'=>"South Carolina",
'SD'=>"South Dakota",
'TN'=>"Tennessee",
'TX'=>"Texas",
'UT'=>"Utah",
'VT'=>"Vermont",
'VA'=>"Virginia",
'WA'=>"Washington",
'WV'=>"West Virginia",
'WI'=>"Wisconsin",
'WY'=>"Wyoming"
);
To:
$state_list=array('AL'=>"Alabama",'AK'=>"Alaska",'AZ'=>"Arizona",'AR'=>"Arkansas",'CA'=>"California",'CO'=>"Colorado",'CT'=>"Connecticut",'DE'=>"Delaware",'DC'=>"District Of Columbia",'FL'=>"Florida",'GA'=>"Georgia",'HI'=>"Hawaii",'ID'=>"Idaho",'IL'=>"Illinois",'IN'=>"Indiana",'IA'=>"Iowa",'KS'=>"Kansas",'KY'=>"Kentucky",'LA'=>"Louisiana",'ME'=>"Maine",'MD'=>"Maryland",'MA'=>"Massachusetts",'MI'=>"Michigan",'MN'=>"Minnesota",'MS'=>"Mississippi",'MO'=>"Missouri",'MT'=>"Montana",'NE'=>"Nebraska",'NV'=>"Nevada",'NH'=>"New Hampshire",'NJ'=>"New Jersey",'NM'=>"New Mexico",'NY'=>"New York",'NC'=>"North Carolina",'ND'=>"North Dakota",'OH'=>"Ohio",'OK'=>"Oklahoma",'OR'=>"Oregon",'PA'=>"Pennsylvania",'RI'=>"Rhode Island",'SC'=>"South Carolina",'SD'=>"South Dakota",'TN'=>"Tennessee",'TX'=>"Texas",'UT'=>"Utah",'VT'=>"Vermont",'VA'=>"Virginia",'WA'=>"Washington",'WV'=>"West Virginia",'WI'=>"Wisconsin",'WY'=>"Wyoming");
EDIT:
Просто гугле ВИМ макро до шаблон не найден, и наткнулся на мой собственный вопрос. У меня есть лучший пример в настоящее время:
namespace A{
class a{}
class a{}
}
namespace B{
class b{}
class b{}
class b{}
}
должен стать:
namespace A{
class Aa{}
class Aa{}
}
namespace B{
class Bb{}
class Bb{}
class Bb{}
}
Это не может быть решен с помощью ранее принятым ответом.
Это похоже на то, что было бы проще с чем-то еще. Можете ли вы привести пример ввода и вывода? – FDinoff
Улыбка, вероятно, не может быть и речи, так как это то, что использует vim. –
Я честно не знаю, что вы ожидаете от нового примера? Каким будет макрос? Что вы на самом деле пытаетесь изменить в этом примере? – FDinoff