是否可以将Visual Studio 2008配置为在保存文件时自动删除每行末尾的空格字符?似乎没有内置选项,那么有没有可用于执行此操作的扩展?
使用正则表达式查找/替换
在查找和替换对话框中,展开查找选项,选中使用,选择正则表达式
找到什么:" :Zs#$
"
替换为:""
单击全部替换
在其他编辑器(正常的正则表达式解析器)中," :Zs#$
"将是" \s*$
".
CodeMaid是一个非常流行的Visual Studio扩展,可以自动执行此操作以及其他有用的清理.
下载:https://github.com/codecadwallader/codemaid/releases/tag/v0.4.3
现代下载:https://marketplace.visualstudio.com/items?itemName = SteveCadwallader.CodeMaid
文档:http://www.codemaid.net/documentation/#cleaning
我将其设置为在保存时清理文件,我认为这是默认设置.
您可以创建一个在保存后执行的宏来为您执行此操作.
将以下内容添加到您的宏的EnvironmentEvents模块中.
Private saved As Boolean = False Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _ Handles DocumentEvents.DocumentSaved If Not saved Then Try DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _ "\t", _ vsFindOptions.vsFindOptionsRegularExpression, _ " ", _ vsFindTarget.vsFindTargetCurrentDocument, , , _ vsFindResultsLocation.vsFindResultsNone) ' Remove all the trailing whitespaces. DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _ ":Zs+$", _ vsFindOptions.vsFindOptionsRegularExpression, _ String.Empty, _ vsFindTarget.vsFindTargetCurrentDocument, , , _ vsFindResultsLocation.vsFindResultsNone) saved = True document.Save() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception") End Try Else saved = False End If End Sub
我已经使用了一段时间,没有任何问题.我没有创建宏,但是从ace_guidelines.vsmacros中修改它,可以通过快速谷歌搜索找到它.
保存之前,您可以使用自动格式快捷键CTRL+ K+ D.
您可以使用以下三个操作轻松完成此操作:
Ctrl+ A(选择所有文字)
编辑 - >高级 - >删除水平空格
编辑 - >高级 - >格式选择
等几秒钟完成.
如果出现问题,它是Ctrl+ Z'能够的.
从已经给出的所有答案中取出元素,这是我最终得到的代码.(我主要编写C++代码,但根据需要很容易检查不同的文件扩展名.)
感谢所有贡献的人!
Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _ Handles DocumentEvents.DocumentSaved Dim fileName As String Dim result As vsFindResult Try fileName = document.Name.ToLower() If fileName.EndsWith(".cs") _ Or fileName.EndsWith(".cpp") _ Or fileName.EndsWith(".c") _ Or fileName.EndsWith(".h") Then ' Remove trailing whitespace result = DTE.Find.FindReplace( _ vsFindAction.vsFindActionReplaceAll, _ "{:b}+$", _ vsFindOptions.vsFindOptionsRegularExpression, _ String.Empty, _ vsFindTarget.vsFindTargetFiles, _ document.FullName, _ "", _ vsFindResultsLocation.vsFindResultsNone) If result = vsFindResult.vsFindResultReplaced Then ' Triggers DocumentEvents_DocumentSaved event again document.Save() End If End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Trim White Space exception") End Try End Sub