มีทางลัดสำหรับคำสั่งDuplicate LineในVisual Studio 2008 หรือไม่?
ตัวอย่างที่คล้ายกัน:
- ในNotepad ++ฉันสามารถทำซ้ำบรรทัดปัจจุบันด้วย: Ctrl+D
- ในEditPlus : Ctrl+J
- ในNetBeans : Ctrl+ Shift+ ↓/↑
- ในEclipse , Ctrl+ Alt+ ↓/↑
- ในVI / เสียงเรียกเข้า ,yyp
- เป็นต้น
มีทางลัดสำหรับคำสั่งDuplicate LineในVisual Studio 2008 หรือไม่?
ตัวอย่างที่คล้ายกัน:
คำตอบ:
Ctrl + D
Ctrl + D
(แก้ไข) ตอนนี้คุณลักษณะนี้มีอยู่แล้วใน VS2017: Ctrl+ E, Vทำซ้ำบรรทัดหากไม่มีการเลือกอะไรเลยหรือการเลือกซ้ำ คุณสามารถกำหนดให้ชุดค่าผสมอื่นหรือค้นหาในเมนู:
ดูการอ้างอิงนี้สำหรับข้อมูลเพิ่มเติม
ตามที่ @cand คุณสามารถทำได้Ctrl+ C; Ctrl+ V.
Ctrl+ Cจะคัดลอกบรรทัดหากไม่มีการเลือกอะไรเลย
หากคุณต้องการใช้โซลูชันที่สมบูรณ์ยิ่งขึ้นบางทีการสร้างแป้นพิมพ์ลัดที่ง่ายกว่าหรือคุณไม่ต้องการให้คลิปบอร์ดมีผลต่อดูที่คู่มือนี้:
คำสั่ง line ซ้ำสำหรับ 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ในการสร้างมาโครเพียงไปที่ macro explorer ("Tools-> Macros-> Macro Explorer" หรือAlt+ F8) และคัดลอกวางโค้ดในโมดูลใหม่ ตอนนี้เพียงกำหนดแป้นพิมพ์ลัดให้:
- ไปที่เครื่องมือ -> ตัวเลือก ...
- ภายใต้สภาพแวดล้อมคลิกแป้นพิมพ์
- ในช่องข้อความ "แสดงคำสั่งที่มี" ให้ป้อน "ซ้ำ" (ซึ่งเป็นไปตามชื่อที่คุณให้กับโมดูล)
- ตอนนี้คุณควรเห็นมาโครในรายการด้านล่าง
- เลือก "ตัวแก้ไขข้อความ" จากรายการ "ใช้ทางลัดใหม่ใน"
- ตั้งค่าโฟกัสในกล่องข้อความ "กดปุ่มทางลัด" และกดปุ่มผสมบนคีย์บอร์ดที่คุณต้องการใช้ ( Ctrl+ Shift+ Dในกรณีของฉัน)
- กดปุ่ม "กำหนด"
- คุณควรเห็นทางลัดในกล่องข้อความ "ทางลัดสำหรับคำสั่งที่เลือก"
- กดปุ่ม OK
และนั่นคือมัน สนุก!
<div>Profile.UserName: <%=Profile.UserName %></div>- <div>Profile.UserName: <%=Profile.UserName %></div> %></div>หลังจากการทำซ้ำบรรทัดนี้ใช้แมโครนี้มันจะกลายเป็นดังต่อไปนี้: อย่างที่คุณเห็นส่วนสุดท้ายคือ "ซ้ำ" เมื่อไม่มีการบล็อกโค้ดฝั่งเซิร์ฟเวอร์มันก็ใช้งานได้ คุณรู้วิธีแก้ปัญหาสำหรับสิ่งนั้นหรือไม่? อย่างไรก็ตามสิ่งที่น่าสนใจอีกอย่างที่ฉันพบคือแมโครนี้ค่อนข้าง "ช้า" ซึ่งฉันไม่ได้คาดหวัง ... :)
มีส่วนขยายฟรีที่คุณสามารถดาวน์โหลดได้ที่นี่ซึ่งให้คุณทำสำเนาบรรทัดโดยไม่ต้องแทนที่เนื้อหาของคลิปบอร์ด
โดยค่าเริ่มต้นมันถูกผูกไว้กับAlt+ Dแต่คุณสามารถเปลี่ยนเป็นอะไรก็ได้ที่คุณต้องการโดยไปที่ Tools-> Options-> Environment-> Keyboard พิมพ์ "ทำซ้ำ" ในช่องค้นหาและค้นหา "แก้ไขทำซ้ำเลือก" และแก้ไขทางลัดตามที่คุณต้องการ ฉันชอบCtrl+ Dเพื่อให้สอดคล้องกับบรรณาธิการอื่น ๆ
Edit.DuplicateSelectionไม่ปรากฏว่ามีอยู่ใน VSE 2013 หรือสิ่งอื่นใดที่มีคำซ้ำซ้อนตามข้อเท็จจริง
มันง่ายCtrl+ C; Ctrl+ V, ตรวจสอบ ลิงค์นี้ ตราบใดที่คุณไม่ได้เลือกข้อความใด ๆ นี้จะซ้ำบรรทัดเคอร์เซอร์จะจบลงเมื่อคุณกด+CtrlC
Ctrl+ C+ Vใช้ได้กับฉันใน VS2012 โดยไม่มีส่วนขยาย
Ctrl+ Dใช้ได้กับฉันใน VS2012 กับ Resharper มันเป็นปุ่มลัดของ 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
หากคุณชอบ eclipse style line (หรือ block) ทำซ้ำโดยใช้CTRL+ ALT+ UPหรือCTRL+ 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
เหตุใดจึงต้องใช้วิธีการที่ดึงออกมานาน ๆ ใช้เวลาน้อยกว่าหนึ่งนาทีในการดาวน์โหลดและติดตั้งส่วนขยายจาก Microsoft หน้าบอกว่ามันจะผูกไว้กับALT+ Dโดยค่าเริ่มต้น แต่สำหรับฉันมันถูกผูกไว้กับCTRL+ Dโดยอัตโนมัติใน Visual Studio Community 2015 โดยไม่มีการเปลี่ยนแปลงใด ๆ
ในรหัสสตูดิโอภาพ ( WebMatrix ):
คัดลอกเส้นลง: Shift+ Alt+down
คัดลอกเส้นขึ้น: Shift+ Alt+up
ลบเส้น: Ctrl+ Shift+k
ในขณะที่ฉันรู้ว่านี่ไม่ใช่แป้นพิมพ์ลัดฉันคิดว่าฉันจะเพิ่มสิ่งนี้เนื่องจากมันไม่ต้องการการใช้คลิปบอร์ดและอาจช่วยบางคนได้
เน้นแถวที่คุณต้องการทำซ้ำ กดควบคุมคลิกเมาส์ที่ข้อความที่ไฮไลต์แล้วลากไปยังตำแหน่งที่คุณต้องการ มันจะทำซ้ำข้อความที่เน้น
เนื่องจากฉันไม่สามารถใช้แมโครใน Visual Studio 2013 ของฉันฉันพบปลั๊กอิน Visual Studio (ฉันใช้ในปี 2012 และ 2013) การเลือกซ้ำทำซ้ำการเลือกและทั้งบรรทัด - พวกเขาจะต้องเลือกบางส่วนเท่านั้น ทางลัดมาตรฐานคือ+ALTD
ฉันไม่รู้ว่ามีอยู่ใน Visual Studio 2008 แต่ใน Visual Studio 2010+ คุณสามารถทำได้โดย:
อย่าเลือกอะไรเลยจากนั้นกดCtrl+ Cแล้ว (โดยไม่ทำอะไรเลย) Ctrl+V
ใน Visual Studio 2017 และอื่น ๆ ที่อาจจะรุ่นไม่จำเป็นต้องแมโครหรือขยาย ,
Tools > Options > Environment > Keyboards Show commands containing:เขียนEdit.DuplicatePress shortcut keys:และกดCtrl+ DและคลิกAssignปุ่มOKเพื่อบันทึกแป้นพิมพ์ลัดใหม่ของคุณฉันใช้มาโครที่ Wael โพสต์แล้ว: ทำซ้ำคำสั่ง line สำหรับ Visual Studioแต่มันหยุดทำงานเมื่อสัปดาห์ที่แล้วฉันสันนิษฐานว่าเป็นเพราะ Windows Update และฉันก็ถูกต้องตั้งแต่เดือนกุมภาพันธ์ 2014 มาโครถูกปิดการใช้งานใน VS2010 (และเห็นได้ชัดว่าปี 2008)
เพื่อแก้ไขปัญหานี้คุณอาจจะต้องถอนการติดตั้งโปรแกรมปรับปรุงความปลอดภัยหรือเพิ่มหนึ่งบรรทัดของรหัสลงใน config ไฟล์ที่แสดงที่นี่
บนพา ธ ดีฟอลต์ของเครื่อง Windows 64 บิตไปที่ไฟล์เหล่านี้คือ:
C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.configC:\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 post-2008 มีการเพิ่ม Edit.Duplicate จริง:
Ctrl+ Dเป็นทางลัดใหม่แนะนำใน VS 2017 v15.6 ที่ดูเหมือนว่าจะทำในสิ่งที่แน่นอนที่Ctrl+ E,V
Ctrl + D จะทำซ้ำบรรทัดที่เคอร์เซอร์อยู่และแทรกลงใต้บรรทัดที่อยู่ในโฟกัส หากคุณต้องการทำซ้ำชุดรหัสเฉพาะให้เลือกส่วนของรหัสที่คุณต้องการทำซ้ำก่อนที่จะเรียกใช้คำสั่งรหัสที่ซ้ำกัน
มันจะไม่ส่งผลกระทบต่อคลิปบอร์ดของคุณ
สำหรับ Visual Studio รหัส 2019 :
แก้ไขแป้นพิมพ์ลัดเมนูด้วย: ctrl+kและctrl+s
แก้ไข "คัดลอกบรรทัดลง" ( Shift+ Alt+ DownArrow) ไปยังทางลัดของคุณเอง
คุณสามารถค้นหาได้ด้วย ID คำสั่ง: editor.action.copyLinesDownAction
สำหรับฉันมันctrl+d
http://www.jetbrains.com/resharper/
เรื่องราวของฉัน:เริ่มทำงานใน บริษัท ใหม่ไม่เคยใช้ Visual Studio มาก่อน หนึ่งในสิ่งแรก - วิธีการทำสำเนาบรรทัด หลังจากตั้งค่าแมโครReSharperบอกฉัน: คุณต้องการแทนที่ทางลัดของฉันซึ่งก็คือ: "ข้อความที่ซ้ำกัน" :)
ใน Visual Studio 2010 คุณคัดลอกทั้งบรรทัดเคอร์เซอร์เปิดด้วยCTRL+ INSERTจากนั้นคุณสามารถใช้Ctrl+ VหรือSHIFT+ INSERTเพื่อวาง
VS 2017 มันCtrl+ DหรือCtrl+ C; Ctrl+ V
พวกเขาทั้งคู่ทำงานให้ฉัน
คำสั่งที่คุณต้องการคือEdit.Duplicate มันเป็นแมปไป,CtrlE CtrlVสิ่งนี้จะไม่เขียนทับคลิปบอร์ดของคุณ
ฉันใช้ลิงค์แอปพลิเคชัน: AutoHotkeyพร้อมรหัสด้านล่างที่บันทึกไว้ในCommentDuplikateSaveClipboard.ahkไฟล์ คุณสามารถแก้ไข / ลบทางลัดได้ง่าย
ฉันมีความเชื่อมโยงไปยังไฟล์นี้"Shortcut to CommentDuplikateSaveClipboard.ahk"ในAutostartหน้าต่าง
สคริปต์นี้ป้องกันคลิปบอร์ดของคุณ
หากคุณสงสัยมากขึ้นคุณจะต้องเพิ่มทางลัดไปยังสคริปต์นี้ / เปิดใช้งาน
บางครั้งผมใช้ที่น่าประทับใจมาก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
ไม่ใช่คำตอบเพียงแค่การเพิ่มที่มีประโยชน์: ในฐานะของ freebie ฉันเพิ่งคิดค้น (ดี ... เอ๊ะ ... ปรับโค้ดที่โพสต์โดย 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
ในVS2019และในVS2017คุณสามารถเลือกเครื่องมือ -> ตัวเลือก -> แป้นพิมพ์และคุณสามารถเลือกตัวเลือกResharper (Visual Studio)แบบหล่นลงและคุณจะได้รับการทำแผนที่เช่นถ้าคุณใช้Resharperในกรณีนี้Ctrl+ Dจะทำเคล็ดลับในการทำซ้ำบรรทัด อย่างไรก็ตามตามเอกสารนี้ควรอยู่นอกเกตในVisual Studio 2017 เวอร์ชัน 15.8หรือสูงกว่า
สำหรับ visual studio 2010 ลองใช้คำสั่งเหล่านี้เพื่อทำสำเนาบรรทัดอย่างรวดเร็ว (ใช้คลิปบอร์ด):
คลิกที่บรรทัดที่คุณต้องการคัดลอก Ctrl+ Cจะคัดลอกบรรทัดนั้น
จากนั้นกดCtrl+ Shift+Enterเพื่อแทรกว่างด้านล่างจุดแทรก
(หรือใช้Ctrl+ Enterเพื่อแทรกบรรทัดว่างด้านบนจุดแทรก)
จากนั้นใช้Ctrl+ Vเพื่อวางบรรทัด