Cài đặt để sao chép dán với thụt lề chính xác trong Visual Studio Code


96

Khi tôi sao chép và dán một đoạn mã bằng Visual Studio Code, sau khi nhấn enter để tạo một dòng mới , điều sau sẽ xảy ra:

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

Dường như vẫn giữ thụt lề được tạo bởi dòng mới, thêm thông tin trước đó từ đoạn mã đã sao chép lên trên. Tôi muốn mã được tự động làm đẹp khi dán.

Có thể thay đổi hành vi này thông qua cài đặt không?

CHỈNH SỬA: Tôi không đề cập đến tính năng sao chép và dán đa nền tảng, tôi đang đề cập đến việc sao chép và dán trong cùng một tệp trong Visual Studio Code.


a) không sao chép khoảng trắng của hàng đầu tiên từ nguồn của bạn hoặc b) khi dán, đảm bảo rằng con trỏ của bạn ở đầu dòng. Về cơ bản VSC chỉ dán nó vào đó "như nó là".
newBee

Vì vậy, không có cách nào để thay đổi điều đó thông qua cài đặt?
Tiago

Đánh dấu văn bản và di chuyển văn bản đó ALT + Arrowkeysẽ giữ được thụt lề. Đối với những người đang tìm kiếm một giải pháp thay thế cho việc thay đổi cài đặt.
Daniel Thompson

Câu trả lời:


103

Điều này đã được tích hợp trong vscode với "editor.formatOnPaste": truethuộc tính trong cài đặt.


12
Thật không may, điều này cũng định dạng bất kỳ mã đã dán nào, không phải lúc nào bạn cũng muốn.
philraj

2
Không, nó không giống nhau. Có một vấn đề tồn tại lâu dài github.com/Microsoft/vscode/issues/6392 đã bị đóng, nhưng thực sự chưa được giải quyết, hãy xem nhận xét. Mọi thứ chúng tôi muốn chỉ là giữ / khớp mức thụt lề của dòng đích / đích, không phải mức ban đầu, nơi văn bản được sao chép từ đó, khi "editor.formatOnPaste": trueđang định dạng, ví dụ: PEP8 fro python.
ololobus

Nó hoạt động theo cách tôi muốn. Tôi muốn nó qua phần i sao chép vào bất cứ nơi nào con trỏ là khi tôi dán
Dave Cọc

2
Mọi Text Editor ngoại trừ VSCode đều cho phép Người dùng nhấp ba lần và đánh dấu bất kỳ văn bản nào. CTRL C để sao chép và sau đó CTRL V, CTRL V để sao chép văn bản đã sao chép. Ngoại trừ trong VS Code, nhấp ba lần CTRL C CTRL V điều chỉnh văn bản và sau đó CTRL V thứ hai làm cho nó thậm chí còn tồi tệ hơn. CTRL C CTRL V là phím tắt phổ biến nhất, ngay cả Mẹ tôi cũng biết phím tắt này.
NZ Dev

3
Điều này không phải là ý kiến, nhiều như tôi đồng ý với phần còn lại của tuyên bố của bạn. COPY và PASTE KHÔNG NÊN CÓ Ý KIẾN, đó là COPY và PASTE chúng chỉ nên hoạt động 1 chiều.
NZ Dev

41

Plugin này có thể giúp bạn:

phần mở rộng dán và thụt lề

Bạn chỉ cần thay đổi phím tắt và nó hoạt động. Hãy nhớ rằng bạn có thể muốn sử dụng 'cmd'thay vì 'ctrl'nếu bạn đang sử dụng mac. Như thế này:

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
Sử dụng điều này để tạo lại hành vi Sublime Text 3 tức là. cmd + shift + v sang paste-indent: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
phocks

Giải pháp này vẫn hoạt động. Không còn tab bổ sung khó chịu và mã thích đưa vào mỗi khi tôi sao chép / dán.
Sáng

6
Tìm thấy nó, hãy vào "Phím tắt" và sau đó nhấp vào biểu tượng "Mở Phím tắt JSON" ở trên cùng bên phải của màn hình, tôi nghĩ là khó tìm!
Matt Fletcher

Phần mở rộng này có một nhược điểm lớn : nó định dạng toàn bộ mã tệp khi dán, không chỉ đoạn được dán! Tôi đã phải gỡ cài đặt.
sdlins

Để xác định vị trí keybindings.jsonbạn cần thêm đoạn mã JSON: Tìm kiếm "Tùy chọn: Mở Phím tắt (JSON) trong Bảng lệnh
Cornelius Roemer

14

Ctrl+ Vtheo sau là Ctrl+ Zdường như hoạt động ngoài hộp.


2
Điều này làm việc đáng ngạc nhiên. Kinda khó chịu khi phải làm điều đó, nhưng còn hơn không
Nate Beers

Bạn đã thử Cmd + V và Cmd + Z chưa?
Philippe

để nó để một sản phẩm của Microsoft không xử lý được khả năng sao chép và dán ... Rất vui vì tôi sử dụng máy tính xách tay linux ... cảm ơn cách giải quyết này đã hoạt động
Scott Stensland

-3

Cách khắc phục đơn giản là thử Ctrl+ Shift+ Vsau khi sao chép mã. Nó sẽ dán tất cả các mã một cách chính xác với các vết lõm trong đó.


Điều này không hoạt động, hoàn toàn giống nhau. Bạn thử cách này: tô sáng đoạn văn - CTRL C, CTRL + SHFT + V, CTRL + SHFT + V. Nó trở nên xấu xí !!!!
NZ Dev

"Để thử" nghe có vẻ lạ. Chính xác thì điều đó làm gì? Điều gì sẽ xảy ra nếu người dùng thay đổi các phím tắt?
Nico Haase
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.