私のVisual Studio(2010 C#)ソリューションでは、一致する文字列パターンを含むすべてのコード行を削除する必要があります。
たとえば、「。BackColor = System.Drawing.Color.Yellow;」を含むすべての行を削除したいとします。 Visual Studioの検索と置換機能は、一致する行を一掃するように指示できないため、十分ではありません。
だから私はそのためのマクロが必要になると思います。どんな助けでもありがたいです。
私はVSでマクロレコーダーを実行し、結果のコードを編集してマクロを作成する傾向があります。
したがって、手動でパターンを検索し、F3を押します。次に、マクロを停止します(または、行開始キーを押し、行末まで選択し、削除を押してから、マクロを停止します)。
マクロを編集し、行を削除するコマンドは次のとおりです。
DTE.ActiveDocument.Selection.SelectLine()
DTE.ActiveDocument.Selection.Delete()
FindTextで検索テキストを設定できます:
DTE.ActiveDocument.Selection.FindText(".BackColor = System.Drawing.Color.Yellow;", vsFindOptions.vsFindOptionsFromStart)
Visual Studioの「検索と置換」機能を使用して、一致する行を削除できます。
重要なのは、行末文字も含めて行全体を一致させることです。これは、ワイルドカードモードまたは正規表現モードで実行できます。ワイルドカードモードでは、式を*
で開始し、式を*\n
で終了します。アスタリスクは任意の数の文字と一致し、\n
は行末文字と一致します。
あなたの場合、検索クエリは "*.BackColor = System.Drawing.Color.Yellow;*\n
"になります。置換フィールドは空白のままにします。
ワイルドカードモードを有効にするには、[検索と置換]ダイアログの[検索オプション]セクションの[使用:]フィールドで[ワイルドカード]を選択します。
Visual Studio 2015では、これがうまくいきました。検索ウィンドウを開き、「正規表現を使用する」チェックマークをオンにします。 「何を見つける」で埋める
.*myCodeHere.*\r?\n
「replace」を空の文字列で埋めます。
Visual Studio 2015(マクロもワイルドカードもない)では、次のようにしました。
({コード文字列の行})\ r?\ n({次の行のタブ移動})
どこ-
{コード行の文字列} =削除するコード行。かっこや引用符などの文字をバックスラッシュ()でエスケープする必要があることに注意してください。
{next line tabbing} =コードの次の行の前にあるスペースの数(これがないと、行は削除されますが、次の行の前にはスペースが2倍になります)
たとえば、削除するには
DoSomething( "こんにちは");
から-
class A
{
void SomeMethod()
{
DoSomething("hello");
DoSomethingElse();
}
}
以下を交換
(DoSomething(\ "hello \")\;)\ r?\ n({})
属性(私の場合は[OperationContract])を削除しようとしていましたが、他の回答はどれもうまくいきませんでした。私は最終的に次のようにしてそれを動作させました:
\[OperationContract\]\r\n\t\t
(正規表現を使用)