実際に2つの質問:
1)選択した行でtoggle commentへのショートカット? notepad ++以降で使用したすべてのiDEで使用可能
2)ctrl-k, ctrl-c
はこの振る舞いを示します(うまく表現された場所から引用):
C#:テキストが選択されている各行は、行でコメント化されます-ダブルスラッシュで始まります。何も選択されていない場合は、カーソルがある行がコメント化されます。
C++:何も選択されていないか、完全な行が選択されている場合、上記のように動作します。ただし、行の一部が選択されていて、選択の一部としてコメントが選択されていない場合(たとえば、コード行の途中で何かを選択する場合)、選択は/ *と* /で囲まれます。
私はC++でコーディングしているので、この動作が煩わしいと感じています-部分的に選択された行をコメントアウトできるようにしたい-回避策はありますか?
一部のテキストが選択されている各行は、行でコメント化されています-ダブルスラッシュで始まります。何も選択されていない場合は、カーソルのある行にコメントが付けられます。
複数行選択の場合:私のソリューションは、選択範囲内のすべての行がコメント化されている場合にのみコメントを解除します。私はそれがより直感的だと思いました。
ツール-> マクロ-> マクロIDE ...
Macro ExplorerでMacrosを右クリックし、New Macro Project ...をクリックします。
たとえば、マクロに名前を付けます。 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
このファイルを保存して、マクロエディタウィンドウを閉じます。
マクロをキーにバインドします。
ツール-> オプション...-> 環境-> キーボード
これを次を含むコマンドを表示に入力します:ToggleCommentLine
Macros.MyMacroProject.Module1.ToggleCommentLineを選択します。
キーをに設定します。ショートカットキーを押します:。 、次に割り当てをクリックし、次に[〜#〜] ok [〜#〜]をクリックします。
楽しい。
動作は意図的なものです。 Ctrl + K、Ctrl + Cショートカットペアを使用して、ユーザーが1行に小さな一時的な変更を加え、行全体を書き直す必要がない場合は、変更全体ではなく変更のみをコメントアウトできます。ライン。
編集:
質問1については、同じショートカットペアです。Ctrl+ K、Ctrl + Cでコメントをオンに切り替え、Ctrl + K、Ctrl + Uでコメントをオフに切り替えます。
編集2:
それでも満足できない場合は、トマトソフトウェア全体からVisual Assist Xを入手してください。 http://www.wholetomato.com/ 「/」キーと「*」キーにコメントショートカットマッピングを追加します。テキストが強調表示されます。
Visual Studio 2019では、最初の行をトリプルクリックしてから一番下の行にドラッグすることで、探している機能をほぼ正確に取得できます。これにより、フルラインが選択されます。
次に、通常どおりCtrl-KCtrl-Cを使用します。 //
ではなく/**/
を挿入します。
トグルコメントのキーショートカットをctrl
+ /
キーに変更したい場合。 VisualStudioのホットコマンドを実行してインストールできます。 Visual Studioを再起動すると、機能します。
https://marketplace.visualstudio.com/items?itemName=JustinClareburtMSFT.HotCommandsforVisualStudio