Visual Studio 2008中是否有 重复行 命令的快捷方式?
一些类似的例子:
答案 0 :(得分:344)
(编辑)此功能现在内置于VS2017中: Ctrl + E , V 如果未选择任何内容,则重复一行,或重复选择。您可以将其分配给不同的组合键,或在菜单中找到它:
有关详细信息,请参阅this reference。
正如@cand所提到的,你可以做 Ctrl + C ; Ctrl + V 。
如果没有选择任何内容,Ctrl + C 将复制该行。
如果您想要实现更完整的解决方案,也许是为了创建更简单的键盘快捷键,或者您不想影响剪贴板,请参阅本指南:
Duplicate line command for Visual Studio
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 )并复制粘贴代码 一个新模块。现在只需为其指定一个键盘快捷键:
- 转到工具 - >选项...
- 在“环境”下,单击“键盘”
- 在“显示包含命令”文本框中,输入“duplicate”(这取决于您为模块提供的名称。)
- 您现在应该看到下面列表中的宏
- 从“使用新快捷方式”列表
中选择“文本编辑器”- 将焦点设置在“按快捷键”文本框中,然后点击键盘上的组合( Ctrl + Shift + D < / kbd> in 我的情况)
- 点击“分配”按钮
- 您现在应该可以在“所选命令的快捷方式”文本框
中看到该快捷方式- 点击“确定”按钮
醇>就是这样。享受!
答案 1 :(得分:126)
您可以下载免费扩展程序here,可以在不替换剪贴板内容的情况下复制行。
默认情况下,它绑定到 Alt + D ,但您可以通过转到工具 - &gt;选项 - &gt;环境 - &gt;将其更改为您想要的任何内容。键盘。在搜索框中键入“Duplicate”,然后查找“Edit.DuplicateSelection”并编辑所需的快捷方式。我更喜欢 Ctrl + D 与其他编辑一致。
答案 2 :(得分:87)
这很简单 Ctrl + C ; Ctrl + V ,检查一下 link。只要您不选择任何文本,当您按 Ctrl + C 时,这将复制光标所在的行。
答案 3 :(得分:70)
Ctrl + C + V 在VS2012上为我工作,没有扩展名。
答案 4 :(得分:30)
Ctrl + D 在VS2012中使用Resharper为我工作。这是Resharper的热门关键。
答案 5 :(得分:26)
在Visual Studio 2013中,您可以使用 Ctrl + C + V
答案 6 :(得分:20)
这是一个基于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
答案 7 :(得分:10)
如果您喜欢使用 CTRL + ALT + UP 或 CTRL 复制eclipse样式行(或块) + UP + 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
答案 8 :(得分:9)
为什么要这么多长期的方法来完成如此简单的事情?从Microsoft下载并安装扩展程序只需不到一分钟。该页面表示它默认将它绑定到 ALT + D ,但对我来说它将它绑定到 CTRL + D < / kbd>在Visual Studio社区2015中自动进行,无需任何更改。
Here's the link to download the extension from Microsoft.com.
答案 9 :(得分:8)
在 visual studio代码( WebMatrix )中:
复制线路: Shift + Alt + down
复制排队: Shift + Alt + up
删除行: Ctrl + Shift + k
答案 10 :(得分:7)
由于我无法在Visual Studio 2013中使用宏,因此我找到了一个Visual Studio插件(我在2012年和2013年使用它)。 Duplicate Selection重复选择和整行 - 它们只需要部分选择。标准快捷键是 ALT + D 。
答案 11 :(得分:7)
虽然我意识到这不是键盘快捷键,但我想我会添加它,因为它不需要使用剪贴板,可能会帮助一些人。
突出显示要复制的行。 按控制,鼠标单击突出显示的文本,然后拖动到要转到的位置。它将复制突出显示的文本。
答案 12 :(得分:5)
我不知道Visual Studio 2008中是否存在这种情况,但在Visual Studio 2010+中,您可以通过以下方式轻松完成此操作:
不要选择任何内容,然后按 Ctrl + C 然后(不做任何其他操作) Ctrl + V < / KBD>
答案 13 :(得分:4)
我一直在使用Wael发布的宏:Duplicate line command for Visual Studio,但它在一周前停止工作,我假设是因为Windows更新。 我是对的,截至2014年2月,Macros已经在VS2010中被禁用(显然是2008年)。
要解决此问题,您必须卸载安全更新,或者在配置文件中添加一行代码,如图here所示。
在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"/>
...
您必须使用管理员权限运行您的文本编辑器,否则它将无效!希望这有助于突然将其宏功能从其下方拉出的其他任何人。
答案 14 :(得分:3)
只需将鼠标放在要复制的行上,然后执行 CTRL + C ,然后 CTRL + V 在同一条线上。 像魔术一样工作: - )
答案 15 :(得分:3)
在visual studio 2008中,您可以使用 CTRL + C + V
答案 16 :(得分:2)
在Visual Studio 2017或其他版本中不需要宏或扩展,
Tools > Options > Environment > Keyboards
Show commands containing:
下写Edit.Duplicate
Press shortcut keys:
上,然后按 Ctrl + D 并单击Assign
按钮OK
保存新的键盘快捷键答案 17 :(得分:2)
对于 Visual Studio 2012、2013、2015、2017 ,请点击链接并下载扩展程序
https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection
现在进入“工具”>“选项”>“键盘”,然后在搜索框中键入“ Duplicate”(完整的命令字符串为“ Edit.DuplicateSelection”)。在这里,您可以将其绑定到任何快捷方式,就像对其他任何命令一样。
答案 18 :(得分:2)
对于那些仍然在2008年后的Visual Studio上查看此问题的人,添加了一个真正的Edit.Duplicate:
答案 19 :(得分:1)
VS 2017 Ctrl
+ D
或Ctrl
+ C
; Ctrl
+ V
他们都为我工作。
答案 20 :(得分:1)
对于Visual Studio 2019 :
编辑菜单键盘快捷键,其中包括: ctrl + k 和 ctrl + s
将“向下复制行”( Shift + Alt + DownArrow )编辑为您自己的快捷方式。
您可以找到它,使用命令ID: editor.action.copyLinesDownAction
对我来说,是 ctrl + d
答案 21 :(得分:1)
您想要的命令是 Edit.Duplicate 。它映射到 Ctrl E , Ctrl V 。 不会覆盖您的剪贴板。
答案 22 :(得分:1)
http://www.jetbrains.com/resharper/
我的故事:开始在一家新公司工作,之前从未使用过Visual Studio。首先要做的事情之一 - 如何复制线条。设置宏后 ReSharper 告诉我:你想用我的快捷方式替换:“重复文本”:)
答案 23 :(得分:1)
在Visual Studio 2010中,使用 CTRL + INSERT 复制光标所在的整行,然后可以使用 Ctrl + V 或 SHIFT + INSERT 将其粘贴。
答案 24 :(得分:1)
我使用应用程序链接:AutoHotkey,下面的代码保存在CommentDuplikateSaveClipboard.ahk
文件中。您可以轻松编辑/删除快捷方式。
我在Windows中的"Shortcut to CommentDuplikateSaveClipboard.ahk"
链接到此文件Autostart
。
此脚本保护您的剪贴板。
如果您更好奇,可以在thisable / enable脚本中添加快捷方式。我有时使用非常令人印象深刻的Multi Clipboard
脚本来轻松处理保存在磁盘上的许多clips
并使用 CTRL + C ,< kbd> 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
答案 25 :(得分:0)
不是答案,只是一个有用的补充: 作为一个免费赠品,我刚刚发明了(嗯...嗯...调整了Lolo发布的代码)一个RemoveLineOrBlock宏。享受!
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
答案 26 :(得分:0)
Ctrl + D 是VS 2017 v15.6中引入的新快捷方式,似乎可以实现 Ctrl + E , V
Ctrl + D将复制光标所在的行,并将其插入焦点所在的行的正下方。如果要复制一组特定的代码,只需在调用重复代码命令之前选择要复制的部分代码即可。
这不会影响您的剪贴板
答案 27 :(得分:0)
在VS2019和VS2017中,您可以选择工具->选项->键盘,还可以在方案下拉列表中选择 Resharper(Visual Studio) 选项,您将获得一个映射,就像您正在使用Resharper一样,在这种情况下为 Ctrl + D 将完成复制行的技巧。无论如何,基于documentation,这应该在 Visual Studio 2017 15.8版 或更高版本中是不可能的
答案 28 :(得分:0)
Visual Studio代码:2020年5月(1.46版) Shift + UpArrow / DownArrow:复制代码行
答案 29 :(得分:0)
如果您有 macos 版本,cmd+shift+D 可以为您完成工作
答案 30 :(得分:-3)
对于visual studio 2010,请尝试使用这些命令进行快速重复(使用剪贴板):
单击要复制的行。 Ctrl + C 将复制该行。
然后按 Ctrl + Shift + Enter 在插入点下方插入空白
(或者使用 Ctrl + 输入在插入点上方插入一个空行。)
然后只需使用 Ctrl + V 粘贴该行。