我需要在迁移文件,视图,区域设置文件等之间移动一大堆变量名。
我不想重新输入所有这些,也不想复制,粘贴和修剪,因为我做了太多。
我一直试图通过正则表达式来解决这些问题,但每次尝试这样做时,都会打印整行,而不仅仅是我希望以':'开头并以'\ 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
答案 0 :(得分:3)
%s/.*\(:\w\+\)\s.*/\1/
有关详细信息,请参阅http://vimregex.com/#backreferences。
答案 1 :(得分:1)
为避免重新输入,
可能就足够了:set iskeyword+=:
在Vim中打开源文件,并在另一个缓冲区中使用内置的插入模式完成(例如:last_
后跟 Ctrl + N )