在我的Visual Studio(2010 C#)解決方案中,我需要刪除包含匹配字符串模式的所有代碼行。Visual Studio宏查找字符串並刪除匹配行
例如,我想要刪除包含「.BackColor = System.Drawing.Color.Yellow;」的所有行。 Visual Studio的查找和替換功能不夠好,因爲您無法通過它來清除匹配的行。
所以我想我會需要一個宏。任何幫助表示讚賞。
在我的Visual Studio(2010 C#)解決方案中,我需要刪除包含匹配字符串模式的所有代碼行。Visual Studio宏查找字符串並刪除匹配行
例如,我想要刪除包含「.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年(其中有沒有宏和無通配符),我做了以下內容:
({line of code string})\ r?\ N({下一行互聯})
凡 -
{代碼串的行} =的行你想刪除的代碼。請注意,你需要轉義字符如括號和引號用反斜槓()
{下一行黏合} =的下一行代碼(如果沒有這個你的行前的空格數將被刪除,但未來線將有兩倍的空間之前
例如,以除去
DoSomething的( 「你好」);
從 -
class A
{
void SomeMethod()
{
DoSomething("hello");
DoSomethingElse();
}
}
更換以下
(DoSomething的(\ 「你好\」)\)\ r \ n({})
VS2013沒有通配符也沒有宏,這永遠不會找到「[MyAttribute]」。我試過:([MyAttribute])\ r?\ n({}),([MyAttribute])\ r?\ n({}),([MyAttribute])\ r \ n ])\ n({}),(\ [MyAttribute \])\ r?\ n({})。有任何想法嗎? – JoanComasFdz
好的,我找到它了:FindWhat =「\ [MyAttribute \] \ r \ n」不加引號。 ReplaceWith =「\ r \ n」不加引號。 UseRegluarExpressions = TRUE。 – JoanComasFdz
與Visual Studio 2015年這個工作呢?我。打開搜索窗口,選中「使用正則表達式」複選標記。填充「找到什麼」與
.*myCodeHere.*\r?\n
填充「替換」爲空字符串。
這不會刪除該行。這留下一條空行。巨大差距。 – claudekennilol
是的,這對我來說也是一個阻礙。但它沒有留下一條空白的線...... – Holger
是否需要成爲VS解決方案?像文本板這樣的產品可以非常容易地瀏覽文件夾中的所有CS文件,並執行所需的替換 –
不,它不需要是VS宏,儘管這將是首選。你可以引導我如何在TextPad中做到這一點嗎?我可以做「在文件中查找」(就像我可以在VS中),但我仍然無法找到一種方法來自動刪除結果行。 – Hadster