Sub FindLine()
Dim textSelection As TextSelection
textSelection = DTE.ActiveDocument.Selection
textSelection.CharLeft(True)
DTE.ExecuteCommand("Edit.Find")
DTE.Find.FindWhat = textSelection.Text
' Also preset replacement text with current selection
DTE.Find.ReplaceWith = textSelection.Text
End Sub
8条答案
按热度按时间p8h8hvxi1#
我终于找到了...
不需要下载和加载任何外部宏。
它在Visual Studio 2008中至少可以使用内置宏。:)
步骤:
1.选择要查找的文本。
1.按Alt + F8或打开"工具-〉宏-〉宏资源管理器"
1.双击 * Sample * → * Utilities * → * FindLine *。(它将打开 * Find * 框,并在"Find"(查找)字段中加载您的选择。不要担心"Find"(查找)字段中显示的截断文本。相信我,该字段包含所有内容... Microsoft显示它的方式可能是...:)
1.单击"查找和替换"对话框中的"快速替换"按钮。输入要替换的文本。
1.并 * 点击 * 任何三个按钮,根据您的要求...它的完成。:)
太好了......它起作用了。这可能不是一个直截了当的方法,但你知道微软。没有什么是直截了当和容易的......:)
v2g6jxz62#
这在Visual Studio 2012中是有效的:
看看
(.*\n)+?
器件如何跨多行进行非贪婪匹配。fooPatternToStart
是起始行上的某个正则表达式模式,而barPatternToEnd
是要在下面另一行上找到的模式,可能是下面许多行...找到的示例为here。
简单有效:)
注:在VS2012之前,有效的模式是:
fooPatternToStart.(.\n)+@.*barPatternToEnd
soat7uwm3#
您可以通过点击“查找和替换”对话框中的“使用正则表达式”复选框来搜索多行表达式。换行符用
\n
表示。uz75evzq4#
我使用这个:Visual Studio Gallery Multiline Search and Replace
pkln4tw65#
仅由Microsoft提供。请检查 Multiline Search and Replace。
它只使用正则表达式。但是对于那些不知道正则表达式的人来说,使用它会更好。
kdfy810k6#
你也可以用UltraEdit打开文件,它完全支持多行替换。如果你只打算使用一次,你可以使用试用版。
e1xvtsh37#
关于Andrew Corkery的评论:
如果你也想指定一个多行替换字符串,编辑宏代码并如下所示设置替换文本。这将允许你“微调”你的替换只需要很小的修改。
jslywgbw8#
Notepad++的最新版本(截至本文发布)支持多行查找/替换。由于Visual Studio中不再支持宏,这一点现在很重要。