Dòng trùng lặp trong Visual Studio Code


146

Tôi đang cố gắng tìm lối tắt để sao chép một dòng trong Visual Studio Code (tôi đang sử dụng 1.3.1) Tôi đã thử biểu tượng CTRL+ rõ ràng Dnhưng điều đó dường như không hoạt động.



Ctrl + D để sao chép dòng mà không phải là rõ ràng: nó hoạt động trong Notepad ++ ví dụ, nhưng nó xóa dòng hiện trong Eclipse :)
Kol

Xem phần mở rộng Trùng lặp theo ngữ cảnh
CharlesB

theo mặc định, CTRL + Dchỉ cần chọn lần xuất hiện tiếp theo đã được chọn so với các IDE khác.
Amir Kian

Câu trả lời:


253

Nhấp vào Tệp > Tùy chọn > Phím tắt :

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

Tìm kiếm copyLinesDownActionhoặc copyLinesUpActiontrong các phím tắt của bạn

Thông thường nó là SHIFT+ ALT+


Cập nhật cho Ubuntu:

Có vẻ như Ubuntu đang ẩn phím tắt đó để VSCode nhìn thấy (tức là nó có thể tự mình sử dụng nó). Có một vấn đề về điều đó trên GitHub .

Để làm việc trong Ubuntu, bạn sẽ phải xác định phím tắt của riêng mình, ví dụ: để sao chép dòng bằng ctrl+ shift+ alt+ jCTRL+ SHIFT+ ALT+ kbạn có thể sử dụng keybindings.jsonnhư sau:

[
    { "key": "ctrl+shift+alt+j", "command": "editor.action.copyLinesDownAction",
                                    "when": "editorTextFocus && !editorReadonly" },
    { "key": "ctrl+shift+alt+k", "command": "editor.action.copyLinesUpAction",
                                    "when": "editorTextFocus && !editorReadonly" }
]

Trên Mac: Mã> Tùy chọn> Phím tắt. Shift + Option + Mũi tên Xuống.
jarmod

2
Câu trả lời @DAXaholic là chính xác nếu bạn cần giải pháp đơn giản, chỉ cần giữ con trỏ trên dòng mà bạn muốn sao chép và nhấn ctrl + c và ctrl + v. nó hoạt động tốt
Gopi P

1
Trên Ubuntu 16.04, theo mặc định, các phím tắt Ctrl+ Shift+ Up Arrow/ Down Arrowđược ánh xạ để di chuyển các cửa sổ đến các không gian làm việc khác nhau. Bạn có thể thay đổi điều này Ubuntu -->System Settings --> Keyboard --> Shortcuts --> Navigationsau đó nhấn Backspaceđể xóa các phím tắt không mong muốn.
mowen

1
Của tôi được liên kết với Ctrl + Shift + Alt + DownArrow, nhưng nó không thực sự làm bất cứ điều gì khi tôi nhấp vào các nút đó.
Aaron Franke

104

Bản sao có thể đạt được bằng CTRL+ CCTRL+ Vvới con trỏ trong dòng mà không có gì được chọn.


35
Tôi chưa phản đối, nhưng tôi sẽ tưởng tượng điều này không được chấp nhận đối với OP vì điều này sao chép dòng vào khay nhớ tạm, đó là một lý do rất tốt để muốn có lệnh "dòng trùng lặp" thay vì lệnh sao chép / dán.
Matt Dell

1
Điều này không hoạt động nếu editor.emptySelectionClipboardtùy chọn được đặt thành false(cấu hình ưa thích của tôi).
Bill_Stewart 21/09/17

8
Đây thổi đi những gì tôi đã có trong clipboard của tôi
Kris Kilton

1
Một điều thú vị mà tôi đã lưu ý trong phương pháp này là không cần phải nhả phím Ctrl sau khi nhấn 'C' (Chỉ nhả sau khi phát hành V)
Arun

Điều này làm hỏng toàn bộ mục đích của việc sao chép dòng tức thì.
Arman Karimi

53

Bạn có thể sử dụng các tùy chọn sau tùy thuộc vào hệ điều hành của mình:

Các cửa sổ:

Shift+ Alt+ hoặc Shift+ Alt+

Mac:

Shift+ Option+ hoặc Shift+ Option+

Linux:

Ctrl+ Shift+ Alt+ hoặc Ctrl+ Shift+ Alt+

Lưu ý: Đối với một số bản phân phối Linux, sử dụng mũi tên Numpad


9

Tìm kiếm copyLinesDownActionhoặc copyLinesUpActiontrong các phím tắt của bạn

Thông thường, nó là SHIFT+ ALT+


7

Ubuntu:

  • Dòng trùng lặp: Ctrl+ Alt+ Shift+8
  • Dòng trùng lặp: Ctrl+ Alt+ Shift+2

1
làm việc hoàn toàn tốt cho tôi. cảm ơn vì câu trả lời.
singhkumarhemant

1
Đây thực sự là một giải pháp tốt (hoạt động trên Ubuntu 20 & 19) mà không yêu cầu bất kỳ thay đổi nào đối với cài đặt mặc định. Có vẻ không trực quan lắm nhưng 8 & 2 là Up và Down thực tế trong NumPad
dùng273711



2

Có một lệnh mới trong v1.40: bỏ editor.action.duplicateSelectionràng buộc với bất kỳ liên kết phím nào.

Lựa chọn trùng lặp

Chúng tôi đã thêm một hành động mới có tên là Lựa chọn trùng lặp. Khi thực hiện, lựa chọn hiện tại sẽ được nhân đôi và kết quả sẽ được chọn. Khi không có lựa chọn, dòng hiện tại sẽ được sao chép, tất cả mà không cần ghi vào khay nhớ tạm thời của hệ thống.

từ https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_40.md

Một số có thể thấy nó hữu ích trong một số tình huống nhất định.


0

2 phím tắt rất hữu ích khác là di chuyển các dòng đã chọn lên và xuống, giống như văn bản siêu phàm làm ...

{
  "key" : "ctrl+shift+down", "command" : "editor.action.moveLinesDownAction",
  "when" : "editorTextFocus && !editorReadonly"
},

{
  "key" : "ctrl+shift+up", "command" : "editor.action.moveLinesUpAction",
  "when" : "editorTextFocus && !editorReadonly"
}

Sai lầm. Bạn không cần phải có selectmột dòng trong ST để sao chép nó.
Màu xanh lá cây

các phím tắt để di chuyển "dòng" đã chọn
Nishant Baranwal

0

Phiên bản mã VC: 1.22.2 Đi tới: Mã -> Tùy chọn -> Phím tắt (cmd + K; cms + S); Thay đổi (chỉnh sửa): "Add Selection To Next Find Match": "cmd + what you want" // đối với tôi đây là "cmd + D" và tôi dùng cmd + F; Đi tới "Copy Line Down": "cmd + D" // chỉnh sửa cái này và đặt cmd + D chẳng hạn Và đối với tôi thì chỉ có thế - tôi sử dụng mac;



0

Có thể tạo keybindings chỉ hoạt động khi Vim for VSCode được bật và ở một chế độ nhất định (ví dụ: "Bình thường", "Chèn" hoặc "Trực quan").

Để làm như vậy, hãy sử dụng Ctrl+ Shift+ Pđể mở Bảng lệnh của VSCode, sau đó tìm kiếm "Tùy chọn: Mở Phím tắt Bàn phím (JSON)" - chọn tùy chọn này sẽ mở ra keybindings.json . Tại đây, các ràng buộc tùy chỉnh có thể được thêm vào.

Ví dụ, đây là các lệnh VSCode cổ điển để di chuyển / sao chép các dòng được tinh chỉnh để dễ sử dụng trong Vim ..

    [
      {
        "key": "alt+j",
        "command": "editor.action.moveLinesDownAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+shift+j",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+k",
        "command": "editor.action.moveLinesUpAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
      {
        "key": "alt+shift+k",
        "command": "editor.action.copyLinesUpAction",
        "when": "editorTextFocus && vim.active && vim.mode == 'Normal'"
      },
    ]

Bây giờ chúng ta có thể sử dụng các lệnh thân thiện với Vim này trong VSCode!

  • Alt+ Jđể di chuyển một dòng xuống dưới
  • Alt+ Kđể di chuyển một dòng
  • Shift+ Alt+ Jđể sao chép xuống dòng
  • Shift + Alt+ Kđể sao chép một dòng

0

Bản cập nhật có thể giúp ích cho người dùng Ubuntu nếu họ vẫn muốn sử dụng thay vì một bộ khóa khác.

Tôi vừa cài đặt phiên bản mới của VSCode trên Ubuntu 18.04 LTS và tôi có các lệnh trùng lặp cho Add Cursor AboveAdd Cursor Below

Keybindings ban đầu

Tôi vừa xóa các liên kết đã sử dụng Ctrlvà thêm các liên kết của riêng tôi với các liên kết sau

Copy Line Up

Ctrl+ Shift+

Copy Line Down

Ctrl+ Shift+

Keybindings mới


0

Có nhiều cách khác nhau.

  • Nhấn CNTRL + C và CNTRL + V.
  • Nhấn Shift + alt + phím mũi tên xuống để sao chép dòng xuống phía dưới
  • Nhấn Shift + alt + uparrow để sao chép dòng sang ngược
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.