1)所选线路上 切换评论 的快捷方式?适用于我用notepad ++
开始使用的所有iDE 2)ctrl-k, ctrl-c
表现出这种行为(引自某个地方措辞得很好):
C#:某些文字所在的每一行 选中的评论是在 以双斜线开头。如果 没有选择,行在哪里 光标是评论。
C ++:如果没有选择任何内容或 选择完整的行,它 表现如上。但是,如果部分 选择一行,没有评论 选择作为选择的一部分(例如 在中间选择一些东西 代码行),然后选择 被/ *和* /包围。
因为我在C ++中编码,我发现这种行为很烦人 - 我希望能够注释掉部分选中的行 - 任何变通办法吗?
答案 0 :(得分:9)
选择某些文本的每一行都在line-start处以双斜杠进行注释。如果未选择任何内容,则会注释光标所在的行。
如果是多行选择: 仅当选择中的所有行都被注释时,我的解决方案才会取消注释。我发现它更直观。
工具 - > 宏 - > 宏IDE ...
在宏资源管理器中右键单击宏并单击新建宏项目...
为您的宏命名,例如 MyMacroProject ,然后点击添加。
右键单击 Macro Explorer 中新宏项目中的 Module1 然后点击修改。
将其粘贴到宏编辑器窗口中:
Option Strict Off
Option Explicit Off
Imports EnvDTE
Imports System.Text.RegularExpressions
Public Module Module1
Sub ToggleCommentLine()
Dim sel As TextSelection = DTE.ActiveDocument.Selection
Dim firstLine As Integer = sel.TopPoint.Line
Dim lastLine As Integer = sel.BottomPoint.Line
sel.GotoLine(firstLine, True)
sel.LineDown(True, lastLine - firstLine)
sel.EndOfLine(True)
'we un-comment only if there is no commented line
Dim allLinesCommented As Boolean = True
Dim lineIndex As Integer = firstLine
While allLinesCommented And (lineIndex <= lastLine)
sel.GotoLine(lineIndex, True)
allLinesCommented = Regex.IsMatch(sel.Text, "^\s*//.*$")
lineIndex += 1
End While
'iterate over the lines
For lineIndex = firstLine To lastLine
sel.GotoLine(lineIndex, True)
Dim line As String = sel.Text
Dim m As Match = Regex.Match(line, "^(\s*)(//)(.*)$")
If allLinesCommented Then
sel.Text = m.Groups(1).Value & m.Groups(3).Value
ElseIf Not m.Success Then
sel.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn)
sel.Text = "//"
End If
Next
'select all the affected lines
sel.GotoLine(firstLine, True)
sel.LineDown(True, lastLine - firstLine)
sel.EndOfLine(True)
End Sub
End Module
保存此文件并关闭宏编辑器窗口。
将宏绑定到一个键:
工具 - &gt; 选项...... - &gt; 环境 - &gt;的键盘强>
将此键入显示包含以下内容的命令:
ToggleCommentLine
选择Macros.MyMacroProject.Module1.ToggleCommentLine。
在处设置按键快捷键:。 ,然后点击分配,然后点击确定。
享受。
答案 1 :(得分:1)
这种行为是故意的。如果用户需要对单行进行微小的临时更改而不需要重写整行,则使用Ctrl + K,Ctrl + C快捷键允许他/她注释掉更改,而不是整个线。
编辑:
对于问题一,它是相同的快捷键对:Ctrl + K,Ctrl + C切换任何注释,Ctrl + K,Ctrl + U切换任何注释。
编辑2:
如果您仍然不满意,请从整个番茄软件中获取Visual Assist X:http://www.wholetomato.com/ 当文本突出显示时,它会向“/”和“*”键添加一个额外的注释快捷方式。
答案 2 :(得分:0)
如果您想更改将注释切换为ctrl
+ /
键的快捷键。您可以为Visual studio命令并安装它。重新启动Visual Studio后,它就可以了!
https://marketplace.visualstudio.com/items?itemName=JustinClareburtMSFT.HotCommandsforVisualStudio
答案 3 :(得分:0)
在Visual Studio 2019中,您可以通过双击第一行然后将其拖到最底下来获得几乎所需的功能。这将选择整行。
然后照常使用Ctrl-K Ctrl-C。它将插入//
而不是/**/
。
答案 4 :(得分:0)
有一个扩展程序具有更“自然”的切换注释体验。它不会注释空白行,但是会取消注释其中包含空白行的选定文本块。
请注意,这是默认的键绑定, Ctrl + / 与VS 2019中的命令冲突,因此在安装时不会进行设置,但是文档显示您如何更改它。
https://marketplace.visualstudio.com/items?itemName=munyabe.ToggleComment
答案 5 :(得分:-2)
切换IS与切换打开和切换关闭不同。
如果我切换一组行 - 其中一些被注释掉,而其他行则没有, 然后一个TOGGLE会注释掉以前没有注释掉的行,然后取消注释掉先前已注释掉的行 - 用单键击。