我有一大堆变量名,需要在迁移文件、视图、区域设置文件等之间移动。
我不想重新键入所有这些,也不想复制、粘贴和修剪,因为我已经做了太多了。
我一直试图通过正则表达式提取这些内容,但每次我尝试这样做时,都会打印整行,而不仅仅是我想要的以":"开头、以"\s"结尾的变量名,如:name、:email、:home_phone等。
我怎么才能得到这些来提取我想要的东西?
我一直在尝试在vim中使用:
:%s/:.*s/y
这是输入文件:
<%= f.input :name %>
<%= f.input :email %>
<%= f.input :home_phone %>
<%= f.input :cell_phone %>
<%= f.input :other_phones %>
<%= f.input :last_position_candidate_id %>
<%= f.input :last_position_title %>
<%= f.input :last_position_company_id %>
<%= f.input :last_position_start_date %>
<%= f.input :last_position_salary %>
<%= f.input :last_position_medical_insurance %>
<%= f.input :last_position_christmas_bonus %>
<%= f.input :last_position_annual_bonus %>
<%= f.input :last_position_vehicle %>
<%= f.input :last_position_other_benefits %>
<%= f.input :conversational_english %>
<%= f.input :written_english %>
<%= f.input :vehicle %>
这就是我想要得到的:
:name
:email
:home_phone
:cell_phone
:other_phones
:last_position_candidate_id
:last_position_title
:last_position_company_id
:last_position_start_date
:last_position_salary
:last_position_medical_insurance
:last_position_christmas_bonus
:last_position_annual_bonus
:last_position_vehicle
:last_position_other_benefits
:conversational_english
:written_english
:vehicle
%s/.*(:w+)s.*/1/
请参阅http://vimregex.com/#backreferences了解更多信息。
为了避免重新键入,可能就足够了
:set iskeyword+=:
在Vim中打开源文件,并在另一个缓冲区中使用内置的插入模式完成(例如,:last_
后面跟着Ctrl+N)。