Visual Studio 2008にDuplicate Lineコマンドのショートカットはありますか?
同様の例:
Visual Studio 2008にDuplicate Lineコマンドのショートカットはありますか?
同様の例:
回答:
Ctrl + D
Ctrl + D
(編集)この機能はVS2017に組み込まれています:Ctrl+ E、V何も選択されていない場合に行を複製するか、選択を複製します。別のキーの組み合わせに割り当てるか、メニューで見つけることができます。
@candが述べたように、あなたはCtrl+を実行することができCます。Ctrl+ V。
Ctrl+ C何も選択されていない場合、行をコピーします。
より完全なソリューションを実装したい場合、より単純なキーボードショートカットを作成したい場合、またはクリップボードに影響を与えたくない場合は、次のガイドを参照してください。
Visual Basic:
Imports System Imports EnvDTE Imports EnvDTE80 Imports System.Diagnostics Public Module DuplicateLastLineModule Sub DuplicateLine() Dim line As String DTE.ActiveDocument.Selection.StartOfLine(0) DTE.ActiveDocument.Selection.EndOfLine(True) line = DTE.ActiveDocument.Selection.Text DTE.ActiveDocument.Selection.EndOfLine() DTE.ActiveDocument.Selection.NewLine() DTE.ActiveDocument.Selection.StartOfLine(0) DTE.ActiveDocument.Selection.Text = line End Sub End Module
マクロを作成するには、マクロエクスプローラー(「ツール」->「マクロ」->「マクロエクスプローラー」またはAlt+ F8)に移動し、コードを新しいモジュールにコピーして貼り付けます。次に、キーボードショートカットを割り当てます。
- [ツール]-> [オプション...]に移動します
- 環境の下で、キーボードをクリックします
- 「次を含むコマンドを表示」テキストボックスに「複製」と入力します(これは、モジュールに付けた名前に基づいています)。
- 下のリストにマクロが表示されます
- 「新しいショートカットを使用」リストから「テキストエディター」を選択します
- [ショートカットキーを押す]テキストボックスにフォーカスを設定し、使用するキーボードの組み合わせを押します(私の場合はCtrl+ Shift+ D)。
- 「割り当て」ボタンを押す
- 「選択したコマンドのショートカット」テキストボックスにショートカットが表示されます
- OKボタンを押してください
以上です。楽しい!
<div>Profile.UserName: <%=Profile.UserName %></div>
このマクロを使用してこの行を複製すると、次のようになります<div>Profile.UserName: <%=Profile.UserName %></div> %></div>
。ご覧のとおり、最後の部分は「繰り返し」です。そこにサーバー側のコードブロックがない場合、問題なく動作します。そのための回避策を知っていますか?ちなみに、私が経験したもう1つの興味深いことは、このマクロは比較的 "遅い"ことです。これは予想していませんでした... :)
ここからダウンロードできる無料の拡張機能があり、クリップボードの内容を置き換えずに行を複製できます。
デフォルトではAlt+ Dにバインドされていますが、[ツール]-> [オプション]-> [環境]-> [キーボード]に移動して、任意の値に変更できます。検索ボックスに「複製」と入力し、「Edit.DuplicateSelection」を探して、必要なものへのショートカットを編集します。Ctrl+ Dは他のエディターとの一貫性を優先します。
Edit.DuplicateSelection
VSE 2013には存在しないようです。実際、重複する用語が含まれるものは何もありません。
Ctrl+ DResharperを使用してVS2012で動作します。Resharperのホットキーです。
Visual Studio 2013では、Ctrl+ C+V
これは、Waelによって投稿されたリンクのマクロに基づくマクロですが、次の領域で改善されています。
Imports System
Imports EnvDTE
Imports EnvDTE80
Public Module Module1
Sub DuplicateLine()
Dim sel As TextSelection = DTE.ActiveDocument.Selection
sel.StartOfLine(0) '' move to start
sel.EndOfLine(True) '' select to end
Dim line As String = sel.Text
sel.EndOfLine(False) '' move to end
sel.Insert(ControlChars.NewLine + line, vsInsertFlags.vsInsertFlagsCollapseToEnd)
End Sub
End Module
CTRL+ ALT+ UPまたはCTRL+ UP+ を使用してEclipseスタイルのライン(またはブロック)の複製が必要な場合はDOWN、以下の目的でマクロを投稿します。
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Public Module DuplicateLineModule
Sub DuplicateLineDown()
Dim selection As TextSelection = DTE.ActiveDocument.Selection
Dim lineNumber As Integer
Dim line As String
If selection.IsEmpty Then
selection.StartOfLine(0)
selection.EndOfLine(True)
Else
Dim top As Integer = selection.TopLine
Dim bottom As Integer = selection.BottomLine
selection.MoveToDisplayColumn(top, 0)
selection.StartOfLine(0)
selection.MoveToDisplayColumn(bottom, 0, True)
selection.EndOfLine(True)
End If
lineNumber = selection.TopLine
line = selection.Text
selection.MoveToDisplayColumn(selection.BottomLine, 0)
selection.EndOfLine()
selection.Insert(vbNewLine & line)
End Sub
Sub DuplicateLineUp()
Dim selection As TextSelection = DTE.ActiveDocument.Selection
Dim lineNumber As Integer
Dim line As String
If selection.IsEmpty Then
selection.StartOfLine(0)
selection.EndOfLine(True)
Else
Dim top As Integer = selection.TopLine
Dim bottom As Integer = selection.BottomLine
selection.MoveToDisplayColumn(top, 0)
selection.StartOfLine(0)
selection.MoveToDisplayColumn(bottom, 0, True)
selection.EndOfLine(True)
End If
lineNumber = selection.BottomLine
line = selection.Text
selection.MoveToDisplayColumn(selection.BottomLine, 0)
selection.Insert(vbNewLine & line)
selection.MoveToDisplayColumn(lineNumber, 0)
End Sub
End Module
なぜそんなに単純なことを達成するためにそれほど多くの長い間引き出された方法があるのですか?Microsoftから拡張機能をダウンロードしてインストールするのに1分もかかりません。このページには、デフォルトでALT+にバインドされると記載Dされていますが、Visual Studio Community 2015では、変更なしで自動的にCTRL+ にバインドされDます。
ではVisual Studioのコード(WebMatrixの):
下に行をコピー:Shift+ Alt+down
行を上にコピー:Shift+ Alt+up
行を削除:Ctrl+ Shift+k
これはキーボードショートカットではないことに気づきましたが、クリップボードを使用する必要がなく、一部の人を助ける可能性があるため、これを追加すると思いました。
複製する行を強調表示します。コントロールを押し、強調表示されたテキストをマウスでクリックし、行きたい場所にドラッグします。ハイライトされたテキストを複製します。
Waelが投稿したマクロVisual StudioのDuplicate line commandを使用していますが、1週間前に機能しなくなりました。Windowsの更新が原因でした。そして私は正しかった、2014年2月の時点で、VS2010(および明らかに2008)ではマクロが無効になっています。
これを修正するには、セキュリティアップデートをアンインストールするか、ここに示すように、構成ファイルに1行のコードを追加する必要があります。
64ビットWindowsマシンでは、これらのファイルへのデフォルトパスは次のとおりです。
C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config
...
<configuration>
<runtime>
<AllowDComReflection enabled="true"/>
...
テキストエディターは管理者権限で実行する必要があります。そうしないと機能しません。うまくいけば、これにより、マクロ機能が突然その下から引き出されるようになった他の人を助けることができます。
以下のためのVisual Studio 2012、2013、2015、2017、リンクをたどると、拡張機能をダウンロード
https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection
次に、[ツール]> [オプション]> [キーボード]に移動し、検索ボックスに「複製」と入力します(コマンド文字列全体は「Edit.DuplicateSelection」です)。ここでは、他のコマンドと同じように、ショートカットにバインドできます。
コピーする行にマウスを置くだけで、同じ行でCTRL+ C、後でCTRL+ を実行できVます。魔法のように動作します:-)
Visual Studio 2008ではCTRL+ C+V
Ctrl+ Dその正確なことを行うように思わVS 2017 v15.6で導入された新しいショートカットですCtrl+はE、V
Ctrl + Dは、カーソルがある行を複製し、フォーカスされている行のすぐ下に挿入します。特定のコードセットを複製する場合は、コードの複製コマンドを呼び出す前に、複製するコードの部分を選択するだけです。
クリップボードには影響しません
http://www.jetbrains.com/resharper/
私の話: Visual Studioを使用したことがない、新しい会社で働き始めました。最初のものの1つ-行を複製する方法。マクロを設定した後、ReSharperは私に次のように伝えました:「重複したテキスト」である私のショートカットを置き換えますか?:)
VS 2017そのCtrl
+ D
またはCtrl
+ C
; Ctrl
+ V
どちらも私のために働いています。
必要なコマンドはEdit.Duplicateです。それはにマッピングされCtrlE、CtrlV。これはしませんクリップボードを上書きし。
アプリケーションリンクを使用:AutoHotkey以下のコードをCommentDuplikateSaveClipboard.ahk
ファイルに保存。ショートカットは簡単に編集/削除できます。Windowsで
このファイル"Shortcut to CommentDuplikateSaveClipboard.ahk"
にリンクしていますAutostart
。
このスクリプトはクリップボードを保護します。
もっと知りたい場合は、thisable / enableスクリプトにショートカットを追加します。
私は時々非常に印象的な使用Multi Clipboard
の多くで簡単にハンドルに、スクリプトをclips
使用してディスクや使用上に保存CTRL+ C、X、V、カット、コピー&ペーストして、次、前、これを削除し、すべてを削除します。
;CommentDuplikateSaveClipboard.ahk
!c:: ; Alt+C === Duplicate Line
^d:: ; Ctrl+D
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return
!x:: ; Alt+X === Comment Duplicate Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{LEFT}//{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return
!z:: ; Alt+Z === Del uncomment Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}{HOME}{DEL}{DEL}
Clipboard := ClipSaved
ClipSaved =
return
!d:: ; Alt+D === Delete line
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}
return
!s:: ; Alt+S === Swap lines
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{CTRLDOWN}x{CTRLUP}{UP}{END}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return
!a:: ; Alt+A === Comment this line, uncomment above
Send, {END}{HOME}//{UP}{HOME}{DEL}{DEL}
return
答えではなく、便利な追加です:景品として、私はRemoveLineOrBlockマクロを考案しました(ええと...えーと... Loloによって投稿されたコードを調整しました)。楽しい!
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Public Module RemoveLineOrBlock
Sub RemoveLineOrBlock()
Dim selection As TextSelection = DTE.ActiveDocument.Selection
Dim lineNumber As Integer
Dim line As String
If selection.IsEmpty Then
selection.StartOfLine(0)
selection.EndOfLine(True)
Else
Dim top As Integer = selection.TopLine
Dim bottom As Integer = selection.BottomLine
selection.MoveToDisplayColumn(top, 0)
selection.StartOfLine(0)
selection.MoveToDisplayColumn(bottom, 0, True)
selection.EndOfLine(True)
End If
selection.LineDown(True)
selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn,True)
selection.Delete()
selection.MoveToDisplayColumn(selection.BottomLine, 0)
selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)
End Sub
End Module
Visual Studio 2010では、次のコマンドを使用して行をすばやく複製してみてください(クリップボードを使用)。
コピーする行をクリックします。 Ctrl+ Cはその行をコピーします。
次にCtrl+ Shift+ Enterを押して、挿入ポイントの下に空白を挿入します
(または、Ctrl+ Enterを使用して、挿入ポイントの上に空白行を挿入します。)
次に、Ctrl+ Vを使用して行を貼り付けます。