2011-05-12 12 views
2

繰り返し編集操作を自動化するIntellij IDEAの方法は何ですか?私は、ファイル内のすべてのB bを交換し、代わりにnullパラメータを渡すしたいIntellijで繰返し編集操作を自動化

public static final Test1 = new Test(A a1, B b); 
public static final Test2 = new Test(A a2, B b); 
public static final Test3 = new Test(A a3, B b); 
public static final Test4 = new Test(A a4, B b); 

は、たとえば、私は、次のようなエントリの数十のファイルを持っています。 gvimのようなエディタでは簡単に行うことができ、通常はmacroを記録して繰り返します。 Intellijのリファクタリング機能が限られているような自動化を行う通常の方法は何ですか?

答えて

3

パターンを識別できる場合は、テキストをテキストパッドなどにコピーし、正規表現を置き換えてテキストを元に戻すことができます。私は非常に頻繁にそれをする。あなたの特定の例

、TextPadのでこれを試す -

  1. F8 - のためにどのような検索]ダイアログ
  2. を置き換えます(テスト([^、])+([^)] +)
  3. を交換してください:\ 1、ヌル
  4. チェック正規表現のチェックボックス
+0

が、私は私の例は、私を説明するために、あまりにもシンプルであることに同意IDEAのstructural search and replace機能を使用することができます単純な正規表現の置き換えがうまくいかないケースがよくあります。コンストラクタから引数をリファクタリングして別のファイルに移動し、それを別のクラスの構造に渡したいとしたらどうでしょうか。より洗練された処理が必要な場合は、さらに多くの場合があります。マクロはある意味で役立つようですが、Intellijで期待しているように動作しないことがよくあります。 はい、正規表現は間違いなく一般的な検索置換よりも多くのことを行うのに役立ちます。 – Leonid

+1

実際、そのようなリファクタリングは利用できません。ただし、メソッドのシグネチャやコンストラクタの引数などを変更することはできますが、同じシグネチャを保持して、特定の呼び出しに対してargumantの値を変更することはできません - これはリファクタリングではありません。 –

5

おそらく、あなたがすることができます。また、このスクリーンキャストをチェックし、あなたが交換し、ちょうどあなたのnull

を入力する列を選択し、|あなたは、カラムモード編集(メインメニューからカラムモード編集)に切り替えることができますキーボードマクロレコーダーを使用します。

enter image description here

をそれとも、

関連する問題