0

移行ファイル、ビュー、ロケールファイルなどの間を移動する必要のある変数名がたくさんあります。

これらすべてを再入力したくはありません。また、やりすぎたため、コピー、貼り付け、トリミングもしたくありません。

私は正規表現でこれらを引き出しようとしていますが、そうしようとするたびに、次のように「:」で始まり「\ 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
4

2 に答える 2

3
%s/.*\(:\w\+\)\s.*/\1/

詳細については、http: //vimregex.com/#backreferencesを参照してください。

于 2012-09-14T19:44:36.347 に答える
1

再入力を避けるために、次のことで十分な場合があります

:set iskeyword+=:

Vimでソースファイルを開き、別のバッファーで組み込みの挿入モード補完(たとえば:last_、その後にCtrl+ )を使用します。N

于 2012-09-14T21:19:16.360 に答える