Visual Studio: Phím tắt: Dòng trùng lặp


423

Có một lối tắt cho lệnh trùng lặp trong Visual Studio 2008 không?

Một số ví dụ tương tự:


6
Chỉ cần thông tin, một trong nhiều lợi ích được cung cấp bởi ReSharper là khả năng làm điều này.
AakashM

2
visualstudiogallery.msdn.microsoft.com/ hiện Tải xuống cái này và alt + D sẽ nhân đôi lựa chọn của bạn hoặc nếu không có gì nổi bật, nó sẽ nhân đôi toàn bộ dòng. Thật không may, các macro cơ bản trực quan dường như không hoạt động trong năm 2013, chỉ có các macro js.
shenk 17/05/2015

1
OMG, vấn đề gì để gán kết hợp một người như thế nào cho việc nhân đôi dòng ??? Tôi đã từng sử dụng Eclipse. Và Ctrl + D là để xóa dòng. Tại sao nó quá phức tạp trong VS ???
Andrii Muzychuk

2
@mghhgm bên dưới là câu trả lời bạn đang tìm kiếm. (shift + alt + down hoặc shift + alt + up)
Victor Barrantes

1
Ví dụ vim không trùng lặp, đó là ctrl + c; ctrl + v. "Yank" cắt, và p dán. Nó không hoàn toàn giống như các ví dụ khác.
17:30

Câu trả lời:


406

Trong Visual Studio 2019

Ctrl + D

Trong Visual Studio 2017 (v15.6 trở lên)

Ctrl + D

Trong Visual Studio 2017 (trước phiên bản 15.6)

(chỉnh sửa) Tính năng này hiện được tích hợp sẵn trong VS2017: Ctrl+ E, Vsao chép một dòng nếu không có gì được chọn hoặc sao chép lựa chọn. Bạn có thể gán nó cho một tổ hợp phím khác hoặc tìm thấy nó trong menu:

Dòng trùng lặp trong VS2017

Xem tài liệu tham khảo này để biết thêm thông tin.

Pre VS2017, phương thức tích hợp sử dụng clipboard

Như @cand đã đề cập, bạn chỉ có thể làm Ctrl+ C; Ctrl+ V.

Ctrl + C sẽ sao chép dòng nếu không có gì được chọn.

Giải pháp vĩ mô (trước VS2017)

Nếu bạn muốn thực hiện một giải pháp hoàn chỉnh hơn, có lẽ để tạo một phím tắt đơn giản hơn hoặc bạn không muốn thực hiện bảng tạm, hãy xem hướng dẫn này:

Lệnh trùng lặp cho Visual Studio

Ngôn ngữ lập trình:

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

Để tạo macro, chỉ cần đi tới trình thám hiểm macro ("Công cụ-> Macro-> Macro Explorer" hoặc Alt+ F8) và sao chép dán mã trong mô-đun mới. Bây giờ chỉ cần gán một phím tắt cho nó:

  1. đi tới Công cụ-> Tùy chọn ...
  2. trong Môi trường, bấm Bàn phím
  3. trong hộp văn bản "Hiển thị các lệnh chứa", nhập "trùng lặp" (cái này theo tên bạn đã đặt cho mô-đun.)
  4. bây giờ bạn sẽ thấy macro trong danh sách dưới đây
  5. chọn "Trình soạn thảo văn bản" từ danh sách "Sử dụng phím tắt mới trong"
  6. đặt tiêu điểm trong hộp văn bản "Bấm phím tắt" và nhấn tổ hợp trên bàn phím bạn muốn sử dụng cho nó ( Ctrl+ Shift+D trong trường hợp của tôi)
  7. nhấn nút "Assign"
  8. bây giờ bạn sẽ thấy lối tắt trong hộp văn bản "Phím tắt cho lệnh đã chọn"
  9. nhấn nút OK

Và đó là nó. Thưởng thức!


3
Tôi vừa thử nó, và thật thú vị khi nó lặp lại một số ký tự phụ khi có "khối mã phía máy chủ" với các thẻ ngắn, như sau: <div>Profile.UserName: <%=Profile.UserName %></div>- sau khi sao chép dòng này bằng macro này, nó sẽ trở thành như sau : <div>Profile.UserName: <%=Profile.UserName %></div> %></div>. Như bạn có thể thấy, phần cuối cùng là "lặp lại". Khi không có khối mã phía máy chủ trong đó, nó hoạt động tốt. Bạn có biết một cách giải quyết cho điều đó? Nhân tiện, một điều thú vị khác mà tôi đã trải nghiệm là macro này tương đối "chậm", điều mà tôi không mong đợi ... :)
Sk8erPeter

6
Sau tháng 2 năm 2014, macro bị vô hiệu hóa vì lý do bảo mật. Cuộn xuống và xem câu trả lời của MasterHD cho cách giải quyết để có được phương pháp của Wael để tiếp tục hoạt động ngay cả sau khi cập nhật bảo mật.
MasterHD

4
Tôi thấy Ctrl C + Ctrl V bị giới hạn trong trường hợp tôi đã sao chép một cái gì đó vào bảng tạm và muốn sao chép một dòng trước khi dán.
cưa

1
Tại sao trên trái đất lại khó thực hiện một hành động trùng lặp hoặc bấm phím mà hầu hết các biên tập viên khác làm rất hiệu quả và trực quan. : /
kisanme

1
Tại sao nó cần thiết. Tôi đã sao chép smth trong tab khác, tôi đến dòng cụ thể trong tab này, tôi sao chép dòng và sau đó sử dụng <code> CTRL + V </ code> để dán một số mã vào. Nếu không, tôi phải đi và mã lại phần mã khác. ..
Augustas

136

Có một phần mở rộng miễn phí bạn có thể tải về tại đây cho phép bạn sao chép các dòng mà không cần thay thế nội dung trong bảng tạm.

Theo mặc định, nó bị ràng buộc thành Alt+ D, nhưng bạn có thể thay đổi nó thành bất cứ điều gì bạn muốn bằng cách đi tới Công cụ-> Tùy chọn-> Môi trường-> Bàn phím. Nhập "Sao y" trong hộp tìm kiếm và tìm "Edit.D repeatateSelection" và chỉnh sửa phím tắt thành bất cứ điều gì bạn muốn. Tôi thích Ctrl+ Dđể phù hợp với các biên tập viên khác.


23
Đây là câu trả lời thực sự mà bạn đang tìm kiếm, mọi thứ khác được đăng ở đây đều thông minh, nhưng không phải là những gì được yêu cầu.
Remco Boom

8
Edit.DuplicateSelectiondường như không có mặt trong VSE 2013. Hoặc bất cứ điều gì khác với thuật ngữ trùng lặp trên thực tế.
ᴍᴀᴛᴛ


2
Matthew, bạn phải nhấp vào liên kết TẠI ĐÂY và cài đặt tiện ích mở rộng. THEN bạn phải đóng studio hình ảnh và mở lại nó. THÌ bạn phải vào Công cụ ==> Tùy chọn ==> Môi trường ==> Bàn phím và THÌ bạn phải nhập trùng lặp và bạn sẽ thấy nó. Sau đó, bạn có thể nhấn F4 để nó hoạt động như QEDIT hoặc bất cứ điều gì bạn muốn và cuộc sống sẽ tốt đẹp.
ggb667

Ngay cả khi hơi khó khăn khi phải cài đặt một công cụ khác, thì công cụ này vẫn hoạt động tốt và hoạt động tốt. Cảm ơn !
Sbu

94

Nó đơn giản Ctrl+ C; Ctrl+ V, kiểm tra liên kết này . Miễn là bạn không chọn bất kỳ văn bản nào, điều này sẽ nhân đôi dòng con trỏ kết thúc khi bạn nhấn Ctrl+ C.


159
Có rất nhiều dịp bạn không muốn đi qua bảng clip, ví dụ nếu bạn muốn sao chép một dòng và sau đó thay thế một số nội dung trong đó bằng nội dung bạn có trong bảng clip.
Effata

7
Chắc chắn, nhưng câu hỏi yêu cầu một phím tắt, không phải là một giải pháp chung cho chỉnh sửa văn bản, vì vậy tôi nghĩ rằng cho các mục đích đơn giản là đủ (ít nhất là trong trường hợp của tôi).
kẹo

4
cảm ơn, nhưng tôi đã mong đợi một cái gì đó như Ctrl + j trong Edit Plus hoặc Crtl + D trong Notepad ++ ... có trong VS2008 hoặc trong VS2010
Posto

2
Tôi chỉ tìm thấy cái này. Tuy nhiên điều đó không tệ - tất nhiên sẽ dễ dàng hơn khi sử dụng ctrl + D, nhưng nếu bạn muốn sao chép 1 dòng trong 100 bản sao Bạn có thể thực hiện bằng ctrl + c (không cần chọn bất cứ điều gì, chỉ cần đặt dấu nhắc lệnh trên dòng mong muốn ) + 100 lần ctrl + v. Đây chỉ là một bộ tổ hợp phím nhiều hơn giải pháp ctrl + d. Nó có thể có vấn đề hơn nếu bạn muốn thực hiện sao chép phức tạp hơn.
kẹo

@ Mason240 Đó là phản ứng ban đầu của tôi cũng như phần được trích dẫn trong câu trả lời được chấp nhận tuy nhiên thông tin bổ sung 'Miễn là bạn không chọn bất kỳ văn bản nào, điều này sẽ nhân đôi dòng con trỏ kết thúc ...' làm cho điều này trở nên lý tưởng giải pháp trong trường hợp của tôi.
RyanfaeScotland

74

Ctrl+ C+ Vhoạt động với tôi trên VS2012 không có phần mở rộng.


Hoạt động trên VS2008 cũng được!
teodron

1
Hoạt động trong VS2017.
Kyle Delaney

8
Cần một giải pháp mà không cần ghi đè clipboard
Pierre de LESPINAY

Chỉ để bổ sung cho câu trả lời, bạn chỉ cần nhấn tổ hợp đầy đủ cho lần nhân đôi đầu tiên. Từ cái thứ hai, chỉ cần nhấn Ctrl + V nhiều lần bạn cần để tiếp tục sao chép dòng.
Luty

34

Ctrl+ Dhoạt động cho tôi trong VS2012 với Resharper. Đó là chìa khóa nóng của Resharper.


11
Không, không, chỉ nhận ra rằng sau khi đăng, nhưng đó là một phím tắt Resharper. và nếu một người đã cài đặt lại, thì điều này có thể giúp ích.
cưa

1
Tôi đã chia sẻ lại và không biết lối tắt đó! Cảm ơn.
DanO

Đây là lối tắt mặc định nếu bạn đang sử dụng lược đồ bàn phím "Resharper 2.x hoặc IntelliJ IDEA" của Resharper. Resharper có bạn chọn ánh xạ bàn phím trong khi cài đặt. Sơ đồ bàn phím "Visual Studio" là một trong những lựa chọn. Nếu bạn chọn lược đồ bàn phím "Visual Studio", thì Ctrl + D sẽ được ánh xạ sang thứ khác.
GeoMac

Đó là một câu trả lời cho câu hỏi ReSharper.
Gian hàng Antony

Lưu ý rằng điều này cũng hoạt động khi nhiều dòng được chọn, tức là bạn có thể sao chép toàn bộ một loạt mã, không chỉ một dòng. Mặt trái của khóa học là việc chia sẻ lại không miễn phí (nhưng có vẻ như thế giới .Net đã quen với điều đó hơn thế giới Java mà tôi đến).
Amos M. Carpenter

31

Trong Visual Studio 2013, bạn có thể sử dụng Ctrl+ C+V


2
Vui mừng tôi đi dạo xuống. Đây là những gì tôi muốn.
Daryl

Làm việc trên VS Code Linux, quá.
Hàn

4
Cần một giải pháp mà không ghi đè lên bảng tạm
Pierre de LESPINAY

2
sẽ rất tuyệt nếu không ghi đè lên bảng tạm
mikus

23

Đây là một macro dựa trên một trong liên kết được đăng bởi Wael, nhưng đã được cải thiện trong các lĩnh vực sau:

  • hơi ngắn
  • nhanh hơn một chút
  • bình luận :)
  • hành xử cho các dòng bắt đầu bằng "///"
  • có thể được hoàn tác với một lần hoàn tác
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

1
Vâng, cái này thực sự hoạt động, cái trong câu trả lời được chấp nhận là sao chép những thứ ngẫu nhiên vào dòng mới. Làm tốt lắm, cảm ơn!
zuallauz

Tôi không tìm thấy tùy chọn Macros trong VS 2010 Express, điều này có thể được thực hiện ở đó không?
Nenotlep

1
Sau tháng 2 năm 2014, macro bị vô hiệu hóa vì lý do bảo mật. Cuộn xuống và xem câu trả lời của MasterHD cho cách giải quyết để có được phương pháp của Mark để tiếp tục hoạt động ngay cả sau khi cập nhật bảo mật.
MasterHD

11

Nếu bạn thích sao chép dòng (hoặc khối) kiểu nhật thực bằng cách sử dụng CTRL+ ALT+ UPhoặc CTRL+ UP+ DOWN, bên dưới tôi đăng macro cho mục đích này:

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

10

Tại sao rất nhiều phương pháp dài rút ra để thực hiện một cái gì đó đơn giản như vậy? Chỉ mất chưa đầy một phút để tải xuống và cài đặt tiện ích mở rộng từ Microsoft. Trang nói rằng nó sẽ liên kết nó với ALT+ Dtheo mặc định, nhưng đối với tôi, nó ràng buộc nó với CTRL+D tự động trong Visual Studio Community 2015 mà không có bất kỳ thay đổi nào.

Đây là liên kết để tải xuống tiện ích mở rộng từ Microsoft.com.


Câu hỏi là về Visual Studio 2008 chứ không phải 2015 :)
sarcom 04/11/2016

Cần lưu ý rằng tiện ích mở rộng này sao chép các dòng đã chọn chứ không phải lựa chọn. Nhưng nó vẫn hữu ích.
ANeves

Giải pháp này hữu ích nhất đối với tôi vì tôi muốn một giải pháp không thay thế những gì tôi có trong bảng tạm. Phần mở rộng này chính xác là những gì tôi đang tìm kiếm. Và theo tác giả mở rộng, hiện tại nó hoạt động cho Visual Studio 2012, 2013, 2015 và 2017.
Mark

8

Trong mã studio hình ảnh ( WebMatrix ):

Sao chép dòng xuống: Shift+ Alt+down

Sao chép dòng lên: Shift+ Alt+up

Xóa dòng: Ctrl+ Shift+k


1
Đây là câu trả lời tốt nhất cho đến nay; nó thậm chí sẽ cho phép bạn nhân đôi một khối mã đầy đủ - nếu bạn muốn - chỉ bằng cách chọn nhiều dòng. Đã thử nghiệm trong Visual Studio Code 1.7.2
Victor Barrantes

7

Mặc dù tôi nhận ra đây không phải là một phím tắt, tôi nghĩ rằng tôi sẽ thêm nó, vì nó không yêu cầu sử dụng bảng tạm và có thể giúp một số người.

Đánh dấu hàng bạn muốn nhân đôi. Nhấn điều khiển, nhấp chuột vào văn bản được tô sáng và kéo đến nơi bạn muốn đến. Nó sẽ nhân đôi văn bản được tô sáng.


Đạt được kết quả tương tự với chức năng tích hợp! Và câu hỏi chỉ yêu cầu một phím tắt - không nhất thiết phải là một phím tắt! Tuy nhiên, sẽ tuyệt vời hơn nếu chuột không phải tham gia.
DanO

7

Vì tôi không thể sử dụng Macros trong Visual Studio 2013, tôi đã tìm thấy Plugin Visual Studio (tôi sử dụng nó vào năm 2012 và 2013). Lựa chọn trùng lặp Sao chép các lựa chọn và toàn bộ Dòng - chúng chỉ cần được chọn một phần. Phím tắt tiêu chuẩn là ALT+ D.


5

Tôi không biết điều này có tồn tại trong Visual Studio 2008 không nhưng trong Visual Studio 2010+ bạn có thể dễ dàng thực hiện điều này bằng cách:

Không chọn bất cứ thứ gì, sau đó nhấn Ctrl+ CVà sau đó (không làm gì khác) Ctrl+V


5

Trong Visual studio 2017 và có thể phiên bản khác Không cần Macro hoặc Tiện ích mở rộng ,

  1. Đi đến Tools > Options > Environment > Keyboards
  2. Đang Show commands containing:viếtEdit.Duplicate
  3. Đặt con trỏ đến Press shortcut keys:và nhấn Ctrl+ Dvà nhấp vào Assignnút
  4. nhấp OKđể lưu phím tắt mới

nhập mô tả hình ảnh ở đây


4

Tôi đã sử dụng macro mà Wael đã đăng: Lệnh trùng lặp cho Visual Studio , nhưng nó đã ngừng hoạt động một tuần trước, tôi giả sử vì một bản cập nhật Windows. Và tôi đã đúng, kể từ tháng 2 năm 2014, Macros đã bị vô hiệu hóa trong VS2010 (và rõ ràng là 2008).

Để khắc phục điều này, bạn sẽ phải gỡ cài đặt các bản cập nhật bảo mật hoặc thêm một dòng mã vào các tệp cấu hình như được hiển thị ở đây .

Trên đường dẫn mặc định của máy Windows 64 bit đến các tệp này là:

  • 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"/>
            ...
    

    ảnh chụp màn hình biên tập

Bạn PHẢI chạy trình soạn thảo văn bản của mình với quyền quản trị hoặc nó sẽ không hoạt động! Hy vọng rằng điều này sẽ giúp bất cứ ai khác đột nhiên có chức năng macro của họ được rút ra từ bên dưới chúng.


4

cho Visual Studio 2012, 2013, 2015, 2017 theo liên kết và tải xuống tiện ích mở rộng

https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection

Bây giờ, hãy vào Công cụ> Tùy chọn> Bàn phím và nhập "Sao y" vào hộp tìm kiếm (chuỗi lệnh đầy đủ là "Chỉnh sửa. Sao chép lại"). Ở đây bạn có thể liên kết nó với bất kỳ phím tắt nào giống như cách bạn làm với bất kỳ lệnh nào khác.


3

Chỉ cần đặt chuột trên dòng để sao chép và thực hiện CTRL+ C, sau đóCTRL + Vtrên cùng một dòng. Hoạt động như ma thuật :-)



3

Đối với những người vẫn đang xem câu hỏi này trên Visual Studio sau năm 2008, một Chỉnh sửa thực sự đã được thêm vào:

  • CTRL+ E,V
  • CTRL+ D(VS 2017 15.6+)

2

Ctrl+ Dlà một phím tắt mới được giới thiệu trong VS 2017 v15.6 dường như thực hiện chính xác điều đó là Ctrl+ E,V

Ctrl + D sẽ nhân đôi dòng con trỏ đang ở và chèn nó ngay bên dưới dòng đang được lấy nét. Nếu bạn muốn sao chép một bộ mã cụ thể, chỉ cần chọn phần mã bạn muốn sao chép trước khi gọi lệnh mã trùng lặp.

Nó sẽ không ảnh hưởng đến clipboard của bạn

Nguồn


1
Bản cài đặt mới của VS2017 và VS2019: Ctrl + D không được ánh xạ mặc định thành Editor. Trùng lặpLine ...
thomasgalliker

2

Cho Visual Studio 2019 :

Chỉnh sửa phím tắt menu với: ctrl+kctrl+s

Chỉnh sửa "Sao chép dòng xuống" ( Shift+ Alt+ DownArrow) vào phím tắt của riêng bạn.

Bạn có thể tìm thấy nó, với lệnh ID: Editor.action.copyLinesDownAction

Đối với tôi, đó là ctrl+d


1

http://www.jetbrains.com/resharper/

Câu chuyện của tôi: bắt đầu làm việc trong một công ty mới, chưa từng sử dụng Visual Studio trước đây. Một trong những điều đầu tiên - làm thế nào để nhân đôi dòng. Sau khi thiết lập macro ReSharper nói với tôi: bạn có muốn thay thế phím tắt của tôi đó là: "văn bản trùng lặp" :)


chia sẻ lại - rất chậm
Horev Ivan

1

Trong Visual Studio 2010, bạn sao chép toàn bộ dòng con trỏ được bật bằng CTRL+ INSERTsau đó bạn có thể sử dụng Ctrl+ Vhoặc SHIFT+ INSERTđể dán nó.



1

Lệnh bạn muốn là Edit.D repeatate . Nó được ánh xạ tới CtrlE, CtrlV. Điều này sẽ không ghi đè lên clipboard của bạn.


1

Tôi sử dụng liên kết ứng dụng: AutoHotkey với mã dưới đây được lưu trong CommentDuplikateSaveClipboard.ahktệp. Bạn có thể chỉnh sửa / xóa các phím tắt thật dễ dàng.
Tôi có liên kết đến tập tin này "Shortcut to CommentDuplikateSaveClipboard.ahk"trong Autostarttrong cửa sổ.
Kịch bản này bảo vệ clipboard của bạn.
Nếu bạn tò mò hơn, bạn sẽ thêm các phím tắt vào tập lệnh có thể bật / bật này.
Đôi khi tôi sử dụng rất ấn tượng Multi Clipboardkịch bản để dễ dàng xử lý với nhiều clipslưu trên đĩa và sử dụng với CTRL+ C, X, Vsao chép, dán, cắt, tiếp theo, trước, xóa này, xóa tất cả.

;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

0

Không phải là một câu trả lời, chỉ là một bổ sung hữu ích: Là một người chơi miễn phí, tôi chỉ phát minh ra (à ... ehm ... đã điều chỉnh mã được đăng bởi Lolo) một macro RemoveLineOrBlock. Thưởng thức!

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

0

trong VS2019 và cả trong VS2017, bạn có thể chọn Công cụ-> Tùy chọn-> Bàn phím và bạn có thể chọn trong tùy chọn thả xuống lược đồ thả xuống (Visual Studio) và bạn sẽ có được ánh xạ như nếu bạn đang sử dụng Resharper , trong trường hợp này Ctrl+ Dsẽ thực hiện các mẹo để nhân đôi dòng. Dù sao, dựa trên tài liệu này nên ra khỏi cổng trong Visual Studio 2017 Phiên bản 15.8 trở lên


-3

Đối với visual studio 2010, hãy thử sử dụng các lệnh này để sao chép dòng nhanh (sử dụng clipboard):

  • Bấm vào dòng bạn muốn sao chép. Ctrl+ Csẽ sao chép dòng đó.

  • Sau đó nhấn Ctrl+ Shift+ Enterđể chèn khoảng trống bên dưới điểm chèn

    (Hoặc sử dụng Ctrl+ Enterđể chèn một dòng trống phía trên điểm chèn.)

  • Sau đó, chỉ cần sử dụng Ctrl+ Vđể dán dòng.


1
Hướng dẫn từng bước rất tốt cho một bản sao và dán. Nhưng OP đang tìm kiếm một phương pháp để lặp lại một dòng ...
ᴍᴀᴛᴛ ʙᴀᴋᴇʀ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.