Jak zduplikować wiersz lub zaznaczenie w programie Visual Studio Code?

730

W jaki sposób za pomocą Microsoft Visual Studio Code mogę powielić linię kodu, a następnie przesunąć go w górę i w dół? (Podobne do zachowania Sublime cmd+ shift+ d)

Jest to funkcja, z której ciągle korzystam i bez niej walczę przy użyciu Visual Studio Code.

Chris
źródło

Odpowiedzi:

1326

Polecenia, których szukasz, to editor.action.copyLinesDownActioni editor.action.copyLinesUpAction.

Możesz zobaczyć powiązane skróty klawiszowe, wybierając: Plik> Preferencje> Skróty klawiaturowe

Windows:

Shift+ Alt+ Downi Shift+ Alt+Up

Prochowiec:

Shift+ Option+ Downi Shift+OptionUp

Linux:

Ctrl+ Shift+ Alt+ Downi Ctrl+ Shift+ Alt+Up

(Może być konieczne użycie NumPada Downi UpLinuksa)

Co więcej, polecenia editor.action.moveLinesUpActioni editor.action.moveLinesDownActionsłużą do przesuwania linii i są przypisane do Alt+ Downi Alt+ Upw Windows i Mac oraz Ctrl+ Downi Ctrl+ Upw Linux.

Benjamin Pasero
źródło
59
I wydaje się Alt+Uplub Alt+Downprzesuwa istniejącą linię w górę iw dół. Fajnie
Chris
2
Warto zauważyć, że akcje copyLines nie istnieją w pełnym Visual Studio, tylko Visual Studio Code.
user45623
4
Narzędzia | Opcje | Środowisko | Klawiatura w VS2015
Mike Keskinov,
15
Czy wiesz, jak „zduplikować wybór”? Nie mogłem znaleźć odpowiedniego polecenia :(
nZeus
25
W systemie Linux ctrl+shift+alt+down/updziała tylko z klawiszami strzałek na klawiaturze numerycznej.
Jack Steam
174

Możesz znaleźć skróty klawiaturowe z

Plik> Preferencje> Skróty klawiaturowe

Domyślne skróty klawiaturowe to

Kopiuj linie w dół Działanie : shift+ alt+down

Kopiowanie linii w górę Działanie : shift+ alt+up

Przenieś linie w górę Działanie : alt+up

Przesuń linie w dół Działanie : alt+down

Możesz też zastąpić skróty klawiaturowe

Plik> Preferencje> Skróty klawiaturowe

I edycja keybindings.json

Przykład:

[
    {
        "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"
    }
]
manukn
źródło
Ponadto, jeśli musisz przesunąć linię daleko, ctrl + C i ctrl + X z łatwością skopiują / wytną bieżącą linię bez konieczności jej wybierania. I ctrl + L(polecenie expandLineSelection ) wybierze linię. Powtarzanie ctrl + L wybiera dodatkowe linie, ułatwiając wybór bloku. Możesz też wybrać przybliżony blok za pomocą myszy, a następnie ctrl + L, aby uwzględnić końce.
aamarks
używam vscode 1.4, to nie działa kochanie
Kamlesh,
49

Brakuje odpowiedzi na to pytanie: „Jak zduplikować wybór kodu” Podobne do zachowania Sublime cmd/ ctrl+ shift+ dlub Jetbrains cmd/ ctrl+ d.

Zainstaluj wtyczkę Zduplikowany wybór lub wiersz z VS Code Marketplace

Zduplikowany wybór lub wtyczka wiersza VS Code

To rozszerzenie zapewnia powiązania dla ctrl+ d(Windows / Linux) i cmd+ d(MacOS). Aby dostosować skróty klawiaturowe Preferencje -> Skróty klawiaturowe:

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

Uwaga: Skrót robi również zduplikowaną linię, więc jeśli go zainstalujesz, usuń poprzedni ctrl+ dskrót copyLinesDownAction(jeśli zrobiłeś to wcześniej), w przeciwnym razie duplikat wyboru może spowodować błąd.

Antman Slaper Man
źródło
Byłem sfrustrowany skrótem „kopiuj linie w dół”, który nie zachowywał się dokładnie jak funkcja Sublime Text / Intellij Ctrl + D (skopiował całe linie zamiast tylko zaznaczenia). Dziękujemy za wskazanie tej wtyczki!
Timothé Malahieude
Właśnie miałem porzucić vscode i zainstalować atom, ale to rozszerzenie mi to uniemożliwiło. domyślna funkcja duplikatu vscode nie jest zgodna z oznaczeniem. atom jest o wiele lepszy pod tym względem.
Vikrant
31

W VScode nazywają to Copy Line UpiCopy Line Down

Z menu przejdź do:

Plik> Preferencje> Skróty klawiaturowe

Sprawdź już przypisany skrót klawiaturowy lub dostosuj swój.

Czasami domyślny przypisany skrót może nie działać, głównie z powodu systemu operacyjnego.

W moim Ubuntu dostosowałem to do: Ctrl+ Shift+D

wprowadź opis zdjęcia tutaj

Nahid
źródło
24

W VSCode Ctrl + CCtrl+ Vpowiela całą linię poniżej.

Wolę to od przyjętej odpowiedzi, ponieważ wymaga to tylko jednej ręki i wydaje się bardziej naturalne.

Przyjęta odpowiedź prawdopodobnie zrobi to dla większości ludzi, jednak Downsiedzi po drugiej stronie klawiatury. Masz więc dwie opcje, użyj obu rąk (lewa ręka: L Shift+ L Alt+ prawa ręka:) Up/Downlub jedną ręką użyj prawej R Shift+ R Alt+ Up/Down. Druga opcja wydaje mi się dziwna. Wolałbym użyć opcji, w której moja ręka naturalnie spoczywa na klawiaturze, a jeśli jest to jedna ręka, nawet lepiej.

Nick De Beer
źródło
7
Głównym problemem jest to, że tracisz to, co było w schowku
Chris
20

Spróbuj ALT+ SHIFT+ UP/DOWN

To zadziałało dla mnie!

eildiz
źródło
To powinna być zaakceptowana odpowiedź!
Fatih Aktaş
Teraz mi to działało.
Mansoorkhan Cherupuzha
12

Pamiętaj, że w przypadku użytkowników Ubuntu (<= 17,4) Unity używa CTRL+ ALT+ SHIFT+ Arrow Keydo przenoszenia programów w wirtualnych obszarach roboczych, co powoduje konflikt ze skrótami kodu VS. Musisz ponownie powiązać editor.action.copyLinesDownActioni editor.action.copyLinesUpActionuniknąć konfliktu (lub zmienić skróty klawiszowe obszaru roboczego).

W przypadku Ubuntu 17.10+, które korzysta z GNOME, wydaje się, że GNOME nie używa tego przypisania klawiszy w ten sam sposób, zgodnie z jego dokumentacją, chociaż jeśli ktoś korzystający z waniliowych obszarów roboczych w 17.10 może to potwierdzić, może to być pomocne dla przyszłych osób poszukujących odpowiedzi.

David Bodow
źródło
Używam Ubuntu 19.10, a Ctrl + Alt + Down nadal porusza się między obszarami roboczymi.
BeeOnRope
9
  • Dla użytkowników Jetbrains IDE, którzy przeprowadzili migrację do VSCode , nie ma problemu.

  • Instalacja:
    1) JetBrains IDE KEYMAP: Extension
    2) vscode-IntelliJ Idea-skróty klawiszowe- Extension (Preferred)

  • Użyj tego Intellij Darcula Theme: Rozszerzenie

  • Mapa klawiszy obejmuje większość skrótów klawiaturowych VS Code i sprawia, że ​​VS Code jest bardziej „ podobny do JetBrains IDE ”.

  • Powyższe rozszerzenia importują skróty klawiszowe z JetBrains do VS Code. Po zainstalowaniu rozszerzenia i ponownym uruchomieniu VS Code możesz używać VS Code tak jak IntelliJ IDEA, Webstorm, PyCharm itp.

Sumit Shukla
źródło
7

W systemie Windows :

Aby skopiować - shift+ alt+up

Aby skopiować - shift+ alt+down

W systemie Mac :

Aby skopiować - shift+ option+up

Aby skopiować - shift+ option+down

W systemie Linux :

Aby skopiować - ctrl+ shift+ alt+8

Aby skopiować - ctrl+ shift+ alt+2

Uwaga : Możesz zmienić skróty klawiaturowe dla kodu Visual Studio, naciskając ctrl+ shift+p , a następnie wpisz otwarty skrót klawiaturowy na palecie, a następnie naciśnij Enter, aby otworzyć nowy plik (plik skrótów klawiatury) , aby zobaczyć wszystkie skróty nad ich i może zmieniać skróty klawiszowe, klikając dwukrotnie odpowiednie przypisanie, a następnie wprowadzając własne, w końcu naciśnij Enter.

Mam nadzieję, że to komuś pomoże!

Aman Kumar Gupta
źródło
6

Jeśli pochodzisz z Sublime Text i nie chcesz ponownie uczyć się nowych powiązań klawiszy, możesz użyć tego rozszerzenia dla Visual Code Studio.

Sublime Text Keymap dla VS Code

To rozszerzenie przenosi najpopularniejsze skróty klawiaturowe Sublime Text do Visual Studio Code. Po zainstalowaniu rozszerzenia i ponownym uruchomieniu VS Code Twoje ulubione skróty klawiaturowe z Sublime Text są już dostępne.

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

cyberfly
źródło
3

Bezpośrednie powielanie linii (bez kroku schowka) jest proponowane przez rozszerzenie kontekstowego duplikatu .

Jest mapowany na ctrl+K D

CharlesB
źródło
1

Dla stacji roboczej Fedora 29 (Gnome 3.30.2) i użytkowników Ubuntu.

Odznacz niepotrzebne kombinacje lewej / prawej klawiatury obszaru roboczego, wypisz je według terminala

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

Rozwiąż je

$ 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 "[]"

Zresetuj zduplikowane skróty

  • Super + Pgdown / PgUp, Ctrl + Alt + Strzałka w dół / Strzałka w górę
  • Super + Shift + PgDown / PgUp, Ctrl + Alt + Shift + Strzałka w dół / Strzałka w górę

Można je łatwo zresetować do pracy za pomocą tylko jednego skrótu w Ustawienia> Urządzenia>
Tylko klawiatura. Ponownie wpisz Super + PgUp jako „Przenieś do obszaru roboczego powyżej” jako przykład.

wprowadź opis zdjęcia tutaj

Teraz z mniej zduplikowanymi skrótami w fedora29 wszystkie skróty vscode dla systemu Linux muszą działać poprawnie

christianbueno.1
źródło
0

w mojej ostatniej wersji Visual Studio Code 1.30.2 zmieni się automatycznie na


ctrl + D

Bouchaib Ennakr
źródło
W vscode podświetla to słowo pod kursorem. Być może Notepad ++ użył skrótu ctrl + D. Po prostu wychodzę z pamięci.
Flat Cat
0

Dla użytkowników systemu Linux: zauważyłem, że w systemie Linux dość często trzeba używać winklucza. Dla systemu Windows kombinacja to:
ctrl+ shift + alt+up

wtedy dla Linuksa jest tak samo, po prostu dodaj winklucz:
ctrl+ shift + win+ alt+up

Zauważyłem to teraz w kilku kombinacjach. Powiedz ctrl+ alt + Lblokuje Linuksa, ale ctrl+ win + alt+ Ldla kodu formatów Intellij. W systemie Windows wystarczy ctrl+ alt +, Laby sformatować kod.

mój-
źródło
0

Po prostu przejdź do pliku -> preferencje -> skróty klawiaturowe Możesz zmienić dowolny skrót, który ci się podoba. wyszukaj duplikat i zmień go na wszystko, czego zawsze używasz w innych edytorach. Zmieniłem na ctrl + D

Amin Noura
źródło