Edycja wielowierszowa w Visual Studio Code

579

Czy można włączyć edytowanie wieloliniowe, jak w Sublime Text ?

Na przykład naciśnij, Ctrlaby umieścić dodatkowe kursory kursora i móc pisać / usuwać jednocześnie w wielu miejscach w dokumencie.

AfBu
źródło
4
W wielu aplikacjach na komputery Mac (np. TextEdit) mogę także przeciągnąć myszą, aby zaznaczyć pole. Czy jest to dostępne w VS Code?
Simon Woodside,
Powiązany post tutaj .
RBT
2
Od kwietnia 2018 r. (Wersja 1.23) możemy użyć środkowego przycisku myszy, aby wybrać wiele kolumn. code.visualstudio.com/updates/...
blueray
5
Dla każdego, kto szuka nazwy tego polecenia w sekcji skrótów klawiaturowych, jest to:editor.action.insertCursorAtEndOfEachLineSelected
enzoborgfrantz
1
@enzoborgfrantz +1 Dokładnie to, czego szukałem! Wybrana odpowiedź powinna najpierw wspomnieć o odpowiednich poleceniach edytora, ponieważ skróty klawiszowe mogą się różnić.
pius

Odpowiedzi:

1060

W systemie Windows przytrzymaj Ctrl+ Alt, naciskając klawisze strzałek w górę lub w dół , aby dodać kursory.

Mac: ⌥ Opt+ ⌘ Cmd+ /

Linux: Shift+ Alt+ /

Pamiętaj, że oprogramowanie innych firm może zakłócać działanie tych skrótów, uniemożliwiając im działanie zgodnie z przeznaczeniem (szczególnie oprogramowanie Intel HD Graphics w systemie Windows; więcej szczegółów można znaleźć w komentarzach).

Jeśli wystąpi ten problem, możesz albo wyłączyć klawisze skrótu Intel / inne oprogramowanie, albo zmodyfikować skróty do kodu VS (opisane poniżej).

Naciśnij, Escaby zresetować do jednego kursora.

Kursory wielowierszowe w programie Visual Studio Code

Lub, jak zauważa Isidor Nikolic , możesz przytrzymać Alti kliknąć lewym przyciskiem myszy, aby dowolnie umieszczać kursory.

Arbitralnie umieszczone kursory wielowierszowe w Visual Studio Code

Możesz przeglądać i edytować skróty klawiaturowe poprzez:

Plik → Preferencje → Skróty klawiaturowe

Dokumentacja:

https://code.visualstudio.com/docs/customization/keybindings

Oficjalne ściągawki skrótów klawiszowych VS Code:

https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf
https://code.visualstudio.com/shortcuts/ skróty klawiaturowe-linux.pdf

Nacimota
źródło
155
W systemie Windows pierwsza opcja po prostu odwraca mój ekran. : - /
Kristoffer la Cour
26
To już nie jest ważne. Spróbuj CTRL + SHIFT + UP/DOWN/CLICKLUBALT + SHIFT + UP/DOWN/CLICK
Han
39
@Nacimota - na komputerze z systemem Windows 10 (właśnie przetestowanym) kombinacja CTRL + ALT + STRZAŁKA przełączy ekran, CTRL + ALT + SHIFT + STRZAŁKA utworzy nowy kursor. Opublikowana lista skrótów klawiaturowych PDF może być nieaktualna.
Alex C
11
@AlexC skróty nie są nieaktualne; pobierz najnowszą wersję i sam sprawdź konfigurację. Jeśli zauważysz, że wymienione skróty odwracają ekran, postawię zakład, ponieważ masz procesor graficzny Intel i korzystasz z oprogramowania Intel, które domyślnie przechwytuje te skróty. Otwórz oprogramowanie HD Graphics i wyłącz lub ponownie skojarz skróty, jeśli Ci to przeszkadza, ale nie edytuj mojego wpisu, aby dodać nieprawidłowe informacje . Podane skróty są dokładne i nie zamierzam wymieniać wszystkich elementów oprogramowania innych firm, które mogą lub nie mogą z nimi kolidować.
Nacimota,
6
@Nacimota z całym szacunkiem, był to uczciwy błąd, który reprezentuje rzeczywistość dla znacznej części użytkowników. Istnieje wystarczająco dużo maszyn wywiadowczych, w których może to być domyślna konfiguracja, aby dodatkowe informacje były cenne. Obaj dążymy do tego, aby zapewnić jak najbardziej aktualną odpowiedź. Pomocne byłoby dodatkowe zdanie wyliczające tę różnicę.
Alex C
136

Rozwiązany w zaledwie dwóch krokach!

  1. Ctrl + F

  2. Alt + Enter

Jest równy Sublime Text Alt+ F3.

Wpisz opis zdjęcia tutaj

Peter Mortensen
źródło
21
Ten sam efekt daje ci wciśnięcie Ctrl + F2
ksopyla
2
Czy możemy zaznaczyć wszystkie wiersze jednocześnie zawierające to słowo kluczowe? Wzniosły tekst miał Ctrl + F> Alt + F3> Ctrl + L
Anirban
Co to jest w kategoriach Mac? Ctrl i Alt zastąpione przez ...?
OldPeculier
67

Możesz po prostu Alt+ kliknąć, aby wyświetlić dodatkowe kursory. I jak już wspomniano, Ctrl+ Alt+ lub .

Isidor Nikolic
źródło
9
I możesz użyć Alt + Shift + kliknięcie, aby wybrać dwie linie i każdą linię pomiędzy nimi.
Steven Liekens
6
Pytanie brzmi: jak edytować jego przypisanie do klucza (jak się Alt + Clicknazywa?)
David Refoua,
Alt + kliknięcie automatycznie definiuje słowo lub przesuwa się na lewo od słowa i nie działa dla mnie.
jbodily
Znalazłem odpowiedź na moje pytanie, może to być Alt (która jest domyślna , lub Ctrl / ⌘ . Tę opcję można zmodyfikować za pomocą "editor.multiCursorModifier": "ctrlCmd"klawisza w settings.json.
David Refoua
62

Wybór skrzynki

Windows: shift+ alt+Mouse Left Button

macOS: shift+ option+Click

Jest to sprzeczne z tym, co wspomniano w odpowiedzi na pytanie Czy program Visual Studio Code ma pole wyboru / edycji wielu wierszy? .

Peter Mortensen
źródło
Nie jestem fanem Shift + Alt + Click (chociaż działa). Tak więc, aby działało (w systemie Windows), podobnie jak w VS, zrobiłem to: przejdź do menu Wybór i wybierz Przełącz na Alt + kliknij, aby wyświetlić Multi-Cursor. Teraz Alt + Click robi zaznaczenie pola.
Kon
27

Użyj Ctrl+, Daby użyć edycji wielu słów w systemie Windows i Linux.

Użyj CMD+ Ddla komputerów Mac.

Krishnaraj R.
źródło
Jak powiedział @Krishnaraj, Ctrl + D działa. W rzeczywistości obsługują to zarówno VSCode, jak i Sublime. Upewnij się, że Ctrl + D zastosujesz do wszystkich późniejszych wystąpień bez zwalniania Ctrl. Tak, nadal musisz ręcznie wybrać, to po prostu pomoże ci uwolnić mysz. MacOS Command + D
Oscar Zhang
22

Od wersji 1.13 (maj 2017) możesz wreszcie zmienić domyślny klawisz modyfikujący do tworzenia wielu kursorów (dodaj do ustawień):

"editor.multiCursorModifier": "ctrlCmd"

PS: Modyfikator „follow link” od tej chwili będzie Alt.

Alex
źródło
Wiele z tych innych odpowiedzi nie odnosi się do pytania. To jest - jak umieścić dodatkowe karetki za pomocą kliknięć myszką.
Aleksander Niedziolko
17

Na Macu jest to:

Option+ Commandpodczas naciskania klawiszy strzałek w górę lub w dół .

kiewic
źródło
16

Chciałem zaznaczyć wiele linii i nacisnąć „coś”, aby mieć kursor dla każdej linii wyboru (podobnie jak Ctrl+ Shift+ Lw Sublime Text). Ta czynność w programie Visual Studio Code nosi nazwę „Dodaj kursory do końców linii”.

Zostało to przetestowane w programie Visual Studio Code 1.22 i działa zarówno w systemie Windows, jak i Mac .

Oto sposób:

  1. Wybierz linie, które chcesz mieć wiele kursorów.
  2. Po prostu naciśnij Alt+ Shift- I.

Teraz masz jeden kursor na wybraną linię.

Maxime
źródło
1
@Manza W VS Code, to jest ALT-SHIFT-I(jak inie L). Czcionka nie pomaga poprawnie widzieć. Używam tego polecenia wiele razy dziennie zarówno na Macu, jak i Windowsie. Właśnie przetestowałem ponownie najnowszą wersję VS Code: 1.24.1 i zapewniam, że działa. Może masz wtyczkę powodującą konflikt?
Maxime
wow tak, to załatwia sprawę, dziękuję bardzo, wciąż przeskakiwałem między wysublimowanym ze względu na tę funkcję, jest bardzo przydatna
Manza
dla mnie to CTRL-SHIFT-L (windows)
wzór
14

Korzystam z rozszerzenia vscodevim , więc nie jestem pewien, czy jest to powszechny problem. Ale miałem problem polegający na tym, że Ctrl+ Alt+ UpArrowodwrócił ekran do góry nogami.

Patrząc na podstawy Visual Studio Code (nie wiem, czy zmienili to w ostatniej aktualizacji), mówi:

Ctrl+ Alt+ Shift+ ( Up/ down)

Andrzej
źródło
1
Ctrl + Alt + [Strzałka] to popularny skrót klawiaturowy do obracania ekranu, z pewnością ze sterownikami graficznymi Intel i / lub powiązanym oprogramowaniem. Wyobrażam sobie, że jest to przechwytywane, zanim VSCode się zajrzy. Ostatnio (i irytujące, ponieważ kiedyś go używałem) rotacja wydaje się być przerwana w aktualizacji oprogramowania Intel i jest teraz dostępna tylko poprzez długie menu. w systemie Windows. Skrót klawiaturowy powinien zatem działać w VSCode z nowszymi sterownikami.
Bob Sammers
9

Krok 1:

Wybierz słowo, które chcesz zastąpić


Krok 2:

Ctrl+ Fto wybierze jego wielokrotne wystąpienia


Krok 3:

Alt + Enterustawi kursor dla wszystkich znalezionych wystąpień


Krok 4:

Po prostu zacznij pisać nowe słowo


Viraj Singh
źródło
6
Również cmd+shift+Lna Macu. Robi to samo w jednym kroku.
Andres,
2
@Andres Thanks! To rozwiązało mój problem w systemie Windows, inne rozwiązania odwróciły ekran.
Tarik Hacialiogullari
8

Od kwietnia 2018 r. (Wersja 1.23) możesz teraz także używać środkowego przycisku myszy do wyboru wielowierszowego / zaznaczania w polu.

Jemmeh
źródło
Dzięki za to, że oszczędzasz czas. Czy jest opcja na klawiaturę? jak wyróżnienie, a następnie ctrl + l w wysublimowany sposób?
Manza,
To nieco inna funkcja, ale prawdopodobnie szukasz Ctrl + I. code.visualstudio.com/docs/getstarted/keybindings
Jemmeh
8

W najnowszej wersji programu Visual Studio Code możesz teraz przeciągnąć kursor, przytrzymując Option( Altw systemie Windows), aby wybrać tę samą kolumnę w wielu wierszach.

Aby to włączyć, zmień swój editor.multiCursorModifierwygląd tak:

"editor.multiCursorModifier": "ctrlCmd"

Z informacji o wersji 1.32.0 Visual Studio Code:

W poniższym filmie wybór zaczyna się od zwykłego zaznaczenia, a następnie naciśnięcie i przytrzymanie klawisza Alt do zwolnienia przycisku myszy:

Przykład ulepszonego wyboru kolumny:

Tyler Becks
źródło
6

W systemie Windows poniższe kombinacje działają dla mnie:

  • Ctrl+ Shift+ Alt+down arrow
  • Ctrl+ Shift+ Alt+up arrow
Dnyneshwar
źródło
Wygląda na to, że jest identyczny z Visual Studio!
GaTechThomas
4

Myślę, że to zależy od twojej wersji Visual Studio Code.

Mój jest wersją Linux Visual Studio Code 1.7.2.

                                     "when": "editorTextFocus" },
{ "key": "shift+alt+up",          "command": "editor.action.insertCursorAbove",
                                     "when": "editorTextFocus" },
{ "key": "ctrl+shift+down",       "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" },
{ "key": "shift+alt+down",        "command": "editor.action.insertCursorBelow",
                                     "when": "editorTextFocus" }```

The point is the shortcuts are not same in all machines, so you should check your configuration. Go to menu:

> Menu *File* → *Preferences* → *Keyboard Shortcuts*

Search for `editor.action.insertCursorAbove` and `editor.action.insertCursorBelow` and see your current configurations. You may change them if they conflict with operating system's shortcut keys.



Han
źródło
Dodanie SHIFT + ALT + UP / DOWN do moich ustawień użytkownika działało na Windows 10
SteveC
4

W Visual Studio Code po prostu naciśnij Alti umieść kursor w miejscu edycji (gdzie chcesz edytować) i kliknij prawym przyciskiem myszy, aby wybrać.

Rudzik
źródło
2
Ta odpowiedź wydaje się niepełna
Spangen
4

Rozwiązaniem dla mnie było najpierw wybranie wymaganego tekstu do edycji, a następnie użycie CTRL+, F2aby zaznaczyć wszystkie pasujące dane na stronie. Możesz także użyć CTRL+ Shift+ Lzgodnie z sugestią @lesterCovax

Uwaga: powyższe rozwiązanie wykorzystuje nieodłączną zdolność edytora VSCode do wybierania podobnego tekstu na całej stronie, dlatego należy zachować ostrożność.

Dla mnie powyższe rozwiązanie Ctrl+ ALT+ Arrowkeysnie zadziałało, ponieważ spowodowało zmianę orientacji ekranu względem wybierania linii w VSCode.

wprowadź opis zdjęcia tutaj

RICHARD ABRAHAM
źródło
2

Jeśli używasz Linuksa, istnieje możliwość konfliktu z kliknięciemAlt + , co jest domyślnym ustawieniem „przesuwania okna”.

Można przejść do menu UstawieniaOkno ZachowanieOkno ZachowanieActions karcie

Wystarczy usunąć Alt+ left(przytrzymaj), a to zadziała.

To najlepszy sposób, ponieważ nie musisz trzymać dwóch +kluczy, aby wykonać tak proste zadanie.

Marcelo Agimóvel
źródło
2

Używam Sublime Text mapy klawiszy a przypisywanie klawiszy podane w górnej odpowiedzi nie wydaje się działać :( Mogą występować konflikty między Visual Studio Code a wysublimowanymi mapami klawiszy.

Polecenie klawiszowe zalecane przez @Han działa dla mnie (bardzo mile widziane!):

  • Wejdź w tryb kursora wieloliniowego za pomocą Ctrl+ Shift+ Up/Down
  • Wyjdź z Esc

(Sidenote) Poniżej znajduje się mały przykład użycia Emmeta razem z kursorem wielowierszowym (włączonym i wyłączonym z tymi powiązaniami klawiszy wymienionymi powyżej):

Wpisz opis zdjęcia tutaj

Shan Dou
źródło
2

Oprócz wszystkich odpowiedzi istnieje jeszcze jeden sposób. Wybierz żądane linie, a następnie naciśnij:

  • Windows: Shift+ Alt+i
  • Mac: shift+ option+i

Spowoduje to umieszczenie kursora w każdym wierszu zaznaczenia.

Pulkit Agarwal
źródło
2

wersja 1.43 (luty 2020)

Możesz teraz przełączać tryb wyboru kolumny, który zmienia gesty myszy i klawisze strzałek, poprzez:

  • Pasek menu> Wybór> Tryb wyboru kolumny
  • Ctrl+ Shift+ P(Pokaż wszystkie polecenia)> Przełącz tryb wyboru kolumny
  • Powiąż swój klucz do polecenia "editor.action.toggleColumnSelection"

wprowadź opis zdjęcia tutaj

Uwaga: Po aktywacji na pasku stanu znajduje się panel „Wybór kolumny”, który można nacisnąć, aby go ponownie wyłączyć.

ford04
źródło
1

Moje ustawienia: Windows 8.1 64 bity, Visual Studio Code wersja 1.33.1.

Problem: Konflikt ze skrótami klawiaturowymi Intel HD Graphics 4000

Miałem problem, gdy korzystałem z domyślnych skrótów Visual Studio Code ( Ctrl+ Alt+ UP, Ctrl+ Alt+ DOWN). W moim przypadku te polecenia obracały ekran odpowiednio o 0º i 180º. Dzieje się tak, ponieważ na moim komputerze jest zainstalowana aplikacja Graphics Intel. Następnie po prostu wyłączam skróty tej aplikacji.

Oto samouczek, który może komuś pomóc.

Rui M.
źródło
1
W Windows 7 możesz kliknąć pulpit prawym przyciskiem myszy, wybrać opcje grafiki -> klawisze skrótu -> wyłączyć.
Moritz Roessler,
0

Tylko Optkliknięcie + działa dla mnie na Macu

Nowicjusz
źródło
0

Rozwiązanie z @maxime z korzystając SHIFT + ALT + ipracował dla mnie, gdy potrzebowałem szybko edytować ~ 20k linie w pliku. Większość pozostałych wspomnianych skrótów klawiaturowych jest użyteczna tylko dla ograniczonej liczby linii. SHIFTwybranie obszaru, który chcesz edytować, a następnie naciśnięcie SHIFT + ALT + ijest najskuteczniejszym sposobem na poradzenie sobie z tym.

To, co przypadkowo odkryłem (i nie zostało tu jeszcze wspomniane), to ograniczenie 10 000 wierszy w „trybie edycji kursora” (istnieje otwarte żądanie funkcji Github, aby je zwiększyć). Oznacza to, że w przypadku bardzo dużych plików lepszym rozwiązaniem może być napisanie skryptu, a nie wykonanie go ręcznie.

Dla osób takich jak @specimen, które musiały użyć do tego celu skrótów, takich jak CTRL + SHIFT + L(domyślne wiązanie Select all occurrences of current selection), należy sprawdzić, czy nie masz zainstalowanego rozszerzenia mapy klawiszy. Możesz to sprawdzić, wyszukując @recommended:keymapsw panelu rozszerzeń, przechodząc do File > Preferences > Keymaps( CTRL+K CTRL+M).

Domyślną mapę klawiszy [Windows] można znaleźć w formacie PDF TUTAJ , lub możesz przejść File > Preferences > Keyboard Shortcutsdo znalezienia / modyfikacji bieżących powiązań. Bardziej szczegółowa dokumentacja powiązań klawiszy znajduje się TUTAJ .

LesterCovax
źródło
0

W systemie Linux Fedora (próbowałem z Fedorą 31) z KDE, przejdź do:

  1. Ustawienia systemowe
  2. Zarządzanie oknami
  3. Zachowanie okna
  4. Czynności w oknie
  5. Wewnętrzne okno, pasek tytułu i akcje ramki
  6. Kliknij pole lewym przyciskiem myszy
  7. Wybierz Nic nie rób (zastępując ruch / przeciąganie)

Teraz możesz wybrać wiele linii za pomocą Alt + lewy przycisk myszy !

kintsukuroi
źródło