Jak znaleźć i zamienić wszystkie wystąpienia (we wszystkich plikach) w Visual Studio Code?

245

Nie mogę wymyślić, jak znaleźć i zamienić wszystkie wystąpienia słowa w różnych plikach za pomocą Visual Studio Code wersja 1.0.

Mam wrażenie, że powinno to być możliwe, ponieważ Ctrl + Shift + F pozwala mi po prostu przeszukać folder, ale nie mam pojęcia, jak to zrobić.

Szukałem w różnych kombinacjach klawiszy https://code.visualstudio.com/Docs/customization/keybindings

Ale znalazłem tylko, jak zastąpić wszystkie wystąpienia w otwartym pliku (Ctrl + h)

Cała pomoc z wdzięcznością doceniona, doprowadza mnie to do szaleństwa.

Cisum Inas
źródło

Odpowiedzi:

363

Korzystam z programu Visual Studio Code 1.8 i ta funkcja jest dostępna. Ale na początku jest to trochę trudne do zrozumienia, a (podczas pisania) dokumenty nie wyjaśniają jasno, jak go używać, więc oto, jak to działa, krok po kroku:

Wywołaj Zamień w plikach (w menu Edycja lub za pomocą skrótu Ctrl+ Shift+ H)

Zobaczysz standardowe wejście Znajdź / Zamień zastępujące okienko plików po lewej:

wprowadź opis zdjęcia tutaj

Wpisz szukany ciąg i zamień ciąg, a następnie naciśnij enter. Może zająć sekundę przeszukanie wszystkich plików, a następnie wyświetli proponowane zmiany we wszystkich plikach projektu - ale pamiętaj, że zmiany te nie zostały jeszcze wprowadzone! Oto jak to wygląda:

wprowadź opis zdjęcia tutaj

Teraz musisz wprowadzić zmiany (a nawet później, musisz zapisać zmodyfikowane pliki ).

Możesz wprowadzić te zmiany na różne sposoby:

1) Wprowadź wszystkie zmiany we wszystkich plikach jednocześnie.

Kliknij ikonę zamiany obok łańcucha zamiany (uwaga: pojawi się okno dialogowe potwierdzające tę akcję zbiorczą).

wprowadź opis zdjęcia tutaj

2) Wprowadź wszystkie zmiany w jednym pliku na raz.

Kliknij ikonę zamiany obok nazwy pliku (uwaga: ikona pojawia się tylko po najechaniu wskaźnikiem myszy na wiersz nazwy pliku)

wprowadź opis zdjęcia tutaj

3) Wprowadź jedną zmianę w jednym pliku.

Kliknij ikonę zastąpienia obok pojedynczej zmiany: (uwaga: ikona pojawia się tylko po najechaniu kursorem na wiersz zmiany)

wprowadź opis zdjęcia tutaj

Wreszcie, nie zapomnij zapisać!

Wszystkie te pliki są teraz modyfikowane w edytorze i nie są jeszcze zapisywane na dysku.

Użyj Plik -> Zapisz wszystko (lub Ctrl+ Alt+ S)

Aktualizacja: nie jestem pewien, kiedy to zostało dodane, ale jeśli klikniesz przycisk „Zamień wszystko” i zobaczysz to okno dialogowe, kliknięcie „Zamień” zmieni i zapisze wszystkie pliki jednym kliknięciem:

wprowadź opis zdjęcia tutaj

Jeff Ward
źródło
1
Czy można zapisać „zamień wyszukiwanie”? Często szukam wyrażenia „class =” i zastępuję go wyrażeniem „className =”
Rune Jeppesen
1
Czy można pominąć ostatni krok i wykonać ciche wyszukiwanie i zamienić? Jeśli przeprowadzam trywialne wyszukiwanie i zamieniam, nie chcę zapisywać poszczególnych plików.
sob.
1
Nie jestem pewien odpowiedzi na którekolwiek z tych pytań. Ale @satJ, pamiętaj, że Ctrl+Alt+Szapisuje wszystkie zmodyfikowane pliki jednocześnie, więc jest to dość szybkie i łatwe.
Jeff Ward
Cholera, to niebezpieczne, zmieniając wszystkie pliki jako domyślne. Czy istnieje polecenie, aby po prostu znaleźć / zamienić w jednym pliku?
Alexander Mills,
Bieżącym zapisem domyślnym jest Ctrl-k, po którym następuje litera s. Ctrl-k, a następnie Ctrl + w zamkną wszystkie okna po otwarciu kilku programów.
Rebecca
25

Aktualizacja

Od wersji 1.3 (czerwiec 2016 r.) Można wyszukiwać i zamieniać w Visual Studio Code. Używając ctrl + shift + f, możesz wyszukiwać i zamieniać wszystkie wystąpienia.

Wygląda na to, że obecnie nie jest to możliwe (wersja 1.1.1 (kwiecień 2016 r.))

„P: Czy jest możliwe globalne wyszukiwanie i zastępowanie?

Odp .: Ta funkcja nie jest jeszcze zaimplementowana, ale możesz spodziewać się, że pojawi się w przyszłości! ”

https://code.visualstudio.com/Docs/editor/codebasics

Wydaje się, że wymaga tego również społeczność: https://github.com/Microsoft/vscode/issues/1690

Cisum Inas
źródło
Aby wyszukać rzeczy w określonym folderze, po prostu dodaj ścieżkę folderu w polu files to include. Możesz znaleźć / wymienić rzeczy nawet poza obszarem roboczym. ⚠ nie wyszukuje w nazwach plików, ale w plikach. (Czy ktoś wie, jak wyszukiwać nazwy plików poza obszarem roboczym?)
JinSnow
22

Aby zamienić ciąg w jednym pliku (aktualnie otwartym): CTRL + H

Do wymiany na poziomie obszaru roboczego użyj: CTRL + SHIFT + H

Sidd501
źródło
Uwaga: Aby uruchomić wyszukiwanie, musisz nacisnąć klawisz Enter, używając Ctrl + Shift + H.
Aaron Franke,
19

To najlepszy sposób.

  1. Najpierw umieść kursor na elemencie i kliknij F2.

  2. Następnie wpisz nową nazwę i naciśnij klawisz Enter. Spowoduje to zmianę nazwy wszystkich wystąpień w każdym pliku w projekcie.

Jest to idealne rozwiązanie, gdy chcesz zmienić nazwę wielu plików. Na przykład, możesz chcieć zmienić nazwę publicznie dostępnej funkcji w usłudze Angular i mieć aktualizację wszędzie tam, gdzie z niej korzysta.

Więcej świetnych narzędzi gorąco polecam: https://johnpapa.net/refactoring-with-visual-studio-code/

DonDaniel
źródło
co jeśli chcę zmienić nazwy wystąpień tylko w bieżącym pliku?
temirbek
@temirbek Od jakiegoś czasu śledzę tę prośbę. Minęły ponad 2 lata i nie zostało jeszcze wdrożone. github.com/Microsoft/vscode/issues/14836
DonDaniel
Cześć, czy zmienia także nazwy powiązanych folderów i importuje?
Tamashi Kaizen,
5

Na stronie Wiązania klawiszy kodu programu Visual Studio sekcja Odwołanie do skrótów klawiaturowych zawiera łącza do pliku PDF dla każdego głównego systemu operacyjnego. Po otwarciu wyszukaj „zamień w plikach” lub innym niezbędnym skrócie.

Innym sposobem jest użycie Palety poleceń ( ctrl/cmd+ shift+ P), w której możesz wpisać „zamień”, aby wyświetlić listę wszystkich powiązanych poleceń, w tym także tego, którego chcesz:

Zamień w plikach ctrl/cmd+ shift+H

T04435
źródło