Làm cách nào để nhân đôi một dòng hoặc lựa chọn trong Visual Studio Code?


732

Sử dụng Microsoft Visual Studio Code, làm cách nào để sao chép một dòng mã và sau đó di chuyển nó lên và xuống? (Tương tự như hành vi + cmd+ của Sublime )shiftd

Đây là một tính năng mà tôi sử dụng liên tục và đang gặp khó khăn khi sử dụng Visual Studio Code mà không có nó.


Điều này có trả lời câu hỏi của bạn không? Dòng trùng lặp trong Visual Studio Code
Arash.Zandi

Câu trả lời:


1327

Các lệnh bạn đang tìm kiếm là editor.action.copyLinesDownActioneditor.action.copyLinesUpAction.

Bạn có thể thấy các phím bấm được liên kết bằng cách chọn: Tệp> Tùy chọn> Phím tắt

Các cửa sổ:

Shift+ Alt+ DownShift+ Alt+Up

Mac:

Shift+ Option+ DownShift+OptionUp

Linux:

Ctrl+ Shift+ Alt+ DownCtrl+ Shift+ Alt+Up

(Có thể cần sử dụng numpad DownUpcho Linux)

Hơn nữa, các lệnh editor.action.moveLinesUpActioneditor.action.moveLinesDownActionlà những lệnh để di chuyển các dòng và chúng bị ràng buộc với Alt+ DownAlt+ Uptrên Windows và Mac và Ctrl+ DownCtrl+ Uptrên Linux.


59
Và nó dường như Alt+Uphoặc Alt+Downdi chuyển một dòng hiện có lên và xuống. Nice
Chris

2
Điều đáng chú ý là các hành động copyLines không tồn tại trong Visual Studio đầy đủ, chỉ có Visual Studio Code.
dùng45623

4
Công cụ | Tùy chọn | Môi trường | Bàn phím trong VS2015
Mike Keskinov

15
Bạn có biết làm thế nào để "lựa chọn trùng lặp"? Tôi không thể tìm thấy lệnh thích hợp :(
nZeus

25
Trên Linux ctrl+shift+alt+down/upchỉ hoạt động cho các phím mũi tên num pad.
Jack Steam

174

Bạn có thể tìm thấy các phím tắt từ

Tệp> Tùy chọn> Phím tắt

Phím tắt mặc định là,

Sao chép hành động xuống : shift+ alt+down

Sao chép hành động lên dòng : shift+ alt+up

Di chuyển dòng lên hành động : alt+up

Di chuyển dòng xuống hành động : alt+down

Hoặc bạn có thể ghi đè các phím tắt từ

Tệp> Tùy chọn> Phím tắt

Và chỉnh sửa keybindings.json

Thí dụ:

[
    {
        "key": "ctrl+d",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+shift+up",
        "command": "editor.action.moveLinesUpAction",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+shift+down",
        "command": "editor.action.moveLinesDownAction",
        "when": "editorTextFocus"
    }
]

Ngoài ra, nếu bạn phải di chuyển một dòng xa, ctrl + C và ctrl + X sẽ dễ dàng sao chép / cắt dòng hiện tại mà không phải chọn nó. Và ctrl + L(lệnh extendLineSelection ) sẽ chọn một dòng. Lặp lại ctrl + L chọn các dòng bổ sung làm cho khối chọn dễ dàng. Hoặc bạn có thể tạo một khối thô chọn bằng chuột và sau đó ctrl + L để bao gồm các đầu.
aamarks

tôi đang sử dụng vscode 1,4 nó không phải là thân làm việc
Kamlesh

49

Nó bỏ lỡ một câu trả lời cho câu hỏi này, "Làm thế nào để lặp lại lựa chọn các mã" Tương tự như Sublime của cmd/ ctrl+ shift+ dhoặc Jetbrains' cmd/ ctrl+ dhành vi.

Cài đặt plugin Lựa chọn trùng lặp hoặc dòng từ VS Code Marketplace

Lựa chọn trùng lặp hoặc plugin VS Code

Tiện ích mở rộng này cung cấp các liên kết cho ctrl+ d(Windows / Linux) và cmd+ d(MacOS). Để tùy chỉnh các phím tắt Tùy chọn -> Phím tắt:

{
  "mac": "cmd+d",
  "key": "ctrl+d",
  "command": "geeebe.duplicateText",
  "when": "editorTextFocus"
}

Lưu ý: Phím tắt cũng có dòng trùng lặp, vì vậy nếu bạn cài đặt nó, hãy xóa phím tắt ctrl+ trước đó (nếu bạn đã làm trước đó) nếu không lựa chọn trùng lặp có thể bị lỗi.dcopyLinesDownAction


Tôi đã thất vọng bởi phím tắt "sao chép dòng xuống" không hoạt động chính xác như tính năng Sublime Text / Intellij Ctrl + D (nó sao chép toàn bộ dòng thay vì chỉ chọn). Cảm ơn bạn đã chỉ ra plugin này!
Timothé Malahieude

Tôi đã định bỏ vscode và cài đặt nguyên tử, nhưng phần mở rộng này đã ngăn cản tôi. chức năng trùng lặp mặc định của vscode không đúng với nhãn hiệu. nguyên tử là tốt hơn nhiều về vấn đề này.
vikrant

31

Trong VScode, họ gọi đây Copy Line UpCopy Line Down

Từ menu, đi đến:

Tệp> Tùy chọn> Phím tắt

Kiểm tra lối tắt bàn phím đã được chỉ định cho điều này hoặc điều chỉnh bàn phím của bạn.

Đôi khi các phím tắt được gán mặc định có thể không hoạt động, chủ yếu là do hệ điều hành.

Trong Ubuntu của tôi, tôi đã điều chỉnh điều này thành: Ctrl+ Shift+D

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


24

Trong VSCode Ctrl + CCtrl+ Vnhân đôi toàn bộ dòng bên dưới.

Tôi thích điều này hơn với câu trả lời được chấp nhận, bởi vì nó chỉ cần một tay để làm điều này và cảm thấy tự nhiên hơn.

Câu trả lời được chấp nhận có thể sẽ làm điều đó cho hầu hết mọi người, tuy nhiên Downnằm ở phía bên kia của bàn phím. Vì vậy, bạn có hai tùy chọn, sử dụng cả hai tay (Tay trái: L Shift+ L Alt+ Tay phải Up/Down:) hoặc với một tay sử dụng quyền R Shift+ R Alt+ Up/Down. Lựa chọn thứ hai cảm thấy kỳ lạ theo ý kiến ​​của tôi. Tôi thà sử dụng tùy chọn trong đó tay tôi tự nhiên nằm trên bàn phím, và nếu một tay thì thậm chí còn tốt hơn.


7
Vấn đề chính là bạn mất những gì có trong clipboard của mình
Chris


12

Lưu ý rằng đối với người dùng Ubuntu (<= 17.4), Unity sử dụng CTRL+ ALT+ SHIFT+ Arrow Keyđể di chuyển các chương trình trên các không gian làm việc ảo, xung đột với các phím tắt Mã VS. Bạn sẽ cần phải rebind editor.action.copyLinesDownActioneditor.action.copyLinesUpActionđể tránh xung đột (hoặc thay đổi các phím bấm không gian làm việc của bạn).

Đối với Ubuntu 17.10+ sử dụng Gnome, có vẻ như Gnome không sử dụng khóa này theo cách tương tự theo tài liệu của nó, mặc dù nếu ai đó sử dụng không gian làm việc vanilla trên 17.10 có thể xác nhận điều này, nó có thể hữu ích cho những người tìm câu trả lời trong tương lai.


Tôi đang sử dụng Ubuntu 19.10 và Ctrl + Alt + Down vẫn di chuyển giữa các không gian làm việc.
BeeOnRope

9
  • Đối với người dùng IDE Jetbrains đã di chuyển sang VSCode , không có vấn đề gì.

  • Cài đặt:
    1) JetBrains IDE Keymap: Tiện ích mở rộng
    2) vscode-intellij-idea-keybindings Tiện ích mở rộng (Preferred)

  • Sử dụng cái này Intellij Darcula Theme: Tiện ích mở rộng

  • Sơ đồ bàn phím đã bao phủ hầu hết các phím tắt trên bàn phím của Mã VS và làm cho Mã VS trở nên giống như ' JetBrains IDE như '.

  • Các tiện ích mở rộng trên nhập khẩu khóa từ JetBrains sang Mã VS. Sau khi cài đặt tiện ích mở rộng và khởi động lại Mã VS, bạn có thể sử dụng Mã VS giống như IntelliJ IDEA, Webstorm, PyCharm , v.v.


7

Đối với Windows :

Để sao chép lên - shift+ alt+up

Để sao chép xuống - shift+ alt+down

Đối với máy Mac :

Để sao chép lên - shift+ option+up

Để sao chép xuống - shift+ option+down

Đối với linux :

Để sao chép lên - ctrl+ shift+ alt+8

Để sao chép xuống - ctrl+ shift+ alt+2

Lưu ý : Bạn có thể thay đổi phím tắt bàn phím của mình để lấy mã phòng thu trực quan bằng cách nhấn ctrl+ shift+p , sau đó nhập phím tắt mở trong palet và sau đó nhấn enter để tệp mới sẽ được mở (Tệp phím tắt trên bàn phím) bạn có thể thấy tất cả các phím tắt trên chúng và có thể thay đổi các liên kết phím bằng cách nhấp hai lần vào liên kết phím tương ứng và sau đó bằng cách nhập liên kết phím của riêng bạn, cuối cùng nhấn enter.

Hy vọng điều này sẽ giúp được ai đó!


6

Nếu bạn đến từ Sublime Text và không muốn học lại ràng buộc khóa mới, bạn có thể sử dụng tiện ích mở rộng này cho Visual Code Studio.

Sơ đồ văn bản tuyệt vời cho mã VS

Tiện ích mở rộng này chuyển các phím tắt bàn phím Sublime Text phổ biến nhất sang Visual Studio Code. Sau khi cài đặt tiện ích mở rộng và khởi động lại VS Code, các phím tắt yêu thích của bạn từ Sublime Text hiện có sẵn.

https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings


3

Sao chép dòng trực tiếp (không có bước clipboard) được đề xuất bởi tiện ích mở rộng Bản sao bối cảnh .

Nó được ánh xạ trên ctrl+K D


1

Đối với máy trạm Fedora 29 (Gnome 3.30.2) và người dùng Ubuntu.

Hủy liên kết bàn phím không gian làm việc trái / phải không cần thiết, liệt kê chúng theo thiết bị đầu cuối

$ gsettings list-recursively | grep -E "org.gnome.desktop.wm.keybindings move-to-workspace-|org.gnome.desktop.wm.keybindings switch-to-workspace-"

Hủy liên kết với họ

$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "[]"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "[]"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "[]"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "[]"

Đặt lại các phím tắt trùng lặp

  • Siêu + PGdown / PGUp, Ctrl + Alt + DownArrow / UpArrow
  • Siêu + Shift + PGDown / PGUp, Ctrl + Alt + Shift + DownArrow / UpArrow

Chúng có thể dễ dàng đặt lại để hoạt động chỉ với một phím tắt trong Cài đặt> Thiết bị> Bàn phím
Chỉ nhập lại Super + PGUp cho "Di chuyển đến không gian làm việc ở trên" làm ví dụ.

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

Bây giờ với các phím tắt ít trùng lặp hơn trong fedora29, tất cả các phím tắt vscode cho linux phải hoạt động tốt


0

trong phiên bản mới nhất của tôi Visual Studio Code 1.30.2, nó sẽ tự động thay đổi thành


ctrl + D


Trong vscode này làm nổi bật từ dưới con trỏ. Có lẽ Notepad ++ đã sử dụng phím tắt ctrl + D. Chỉ cần đi từ bộ nhớ.
Mèo phẳng

0

Đối với người dùng Linux: Tôi nhận thấy những gì trên Linux bạn thường xuyên cần sử dụng winkhóa. Đối với combo Windows là:
ctrl+ shift + alt+up

thì đối với Linux cũng vậy, chỉ cần thêm winkhóa:
ctrl+ shift + win+ alt+up

Tôi nhận thấy rằng trong một vài combo bây giờ. Nói ctrl+ alt + Lkhóa Linux, nhưng ctrl+ win + alt+ Lcho mã định dạng Intellij. Trong Windows chỉ là ctrl+ alt + Lđể định dạng mã.


0

Chỉ cần truy cập tệp -> tùy chọn -> phím tắt Ở đó bạn có thể thay đổi bất kỳ phím tắt nào bạn muốn. tìm kiếm bản sao và thay đổi nó thành bất cứ điều gì bạn luôn sử dụng trong các trình soạn thảo khác. Tôi đã đổi thành ctrl + D

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.