Як знайти та замінити всі події (у всіх файлах) у Visual Studio Code?


245

Я не можу зрозуміти, як знайти та замінити всі зустрічі слова в різних файлах за допомогою Visual Studio Code версії 1.0.

У мене складається враження, що це повинно бути можливим, оскільки виконання Ctrl + Shift + F дозволяє мені просто шукати папку, але я не знаю, як діяти звідси.

Я розглядав різні комбінації клавіш https://code.visualstudio.com/Docs/customization/keybindings

Але я лише знайшов, як замінити всі події у відкритому файлі (Ctrl + h)

Вся допомога вдячно оцінена, це зводить мене з розуму.

Відповіді:


363

Я використовую Visual Studio Code 1.8, і ця функція доступна. Але спочатку трохи складно зрозуміти, і (на момент написання) документи не пояснюють чітко, як ним користуватися, тому ось, як це працює, крок за кроком:

Викликати Замінити у файлах (у меню Правка або за допомогою ярлика Ctrl+ Shift+ H)

Ви побачите стандартний вхід "Знайти / замінити", що замінює панель файлів зліва:

введіть тут опис зображення

Введіть рядок пошуку та рядок заміни, а потім натисніть клавішу Enter. Це може почати секундовий пошук усіх файлів, тоді він покаже запропоновані зміни у всіх файлах вашого проекту - але зауважте, ці зміни ще не внесені! Ось як це виглядає:

введіть тут опис зображення

Тепер вам потрібно внести зміни (і навіть після цього вам доведеться зберегти змінені файли .)

Ці зміни можна внести різними способами:

1) Внесіть всі зміни одразу до всіх файлів.

Клацніть піктограму заміни біля рядка заміни (зверніть увагу: ви отримаєте діалогове вікно для підтвердження цієї масової дії.)

введіть тут опис зображення

2) Внесіть всі зміни в один файл одразу.

Клацніть піктограму заміни поруч із назвою файлу (зверніть увагу: піктограма відображається лише при наведенні курсору на рядок імені файлу)

введіть тут опис зображення

3) Внесіть одну зміну в один файл.

Клацніть піктограму заміни поруч із окремою зміною: (зверніть увагу: піктограма відображається лише при наведенні курсору на рядок зміни)

введіть тут опис зображення

Нарешті, не забудьте зекономити!

Усі ці файли тепер змінені в редакторі та ще не збережені на диску.

Використовувати Файл -> Зберегти все (або Ctrl+ Alt+ S)

Оновлення: я не впевнений, коли це було додано, але якщо натиснути кнопку «Замінити все» та побачити це діалогове вікно, натискання кнопки «Замінити» змінить і збереже всі файли одним клацанням:

введіть тут опис зображення


1
Чи можливо зберегти "пошук-заміну"? Я часто шукаю 'class =' ​​і замінюю на 'className ='
Rune Jeppesen

1
Чи можливо пропустити останній крок і зробити тихий пошук і заміну? Якщо я роблю тривіальний пошук і заміну, я не хочу зберігати кожен окремий файл.
сбЯ

1
Я не впевнений у відповіді на жодне з цих питань. Але зауважте @satJ, що Ctrl+Alt+Sзберігаються всі змінені файли одразу, тому це досить швидко та просто.
Джефф Уорд

Боже, чорт, це небезпечно, змінюючи всі файли за замовчуванням. Чи є команда просто знайти / замінити в одному файлі?
Олександр Міллс

Поточним збереженням усіх за замовчуванням є Ctrl-k, а потім буква s. Ctrl-k, а потім Ctrl + w закриє всі ваші вікна після того, як програми відкриють купу їх.
Ребекка

25

Оновлення

Станом на версію 1.3 (червень 2016 р.) Можна шукати та замінювати у Visual Studio Code. Використовуючи ctrl + shift + f, ви можете шукати та замінювати всі події.

Схоже, це наразі неможливо (версія 1.1.1 (квітень 2016))

"Питання: Чи можливий глобальний пошук і заміна?

Відповідь: Ця функція ще не реалізована, але ви можете сподіватися, що вона надійде в майбутньому! "

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

Здається, це також вимагає громада: https://github.com/Microsoft/vscode/isissue/1690


Для пошуку матеріалів у певній папці просто додайте шлях до папки у полі files to include. Ви можете знайти / замінити речі навіть за межами робочої області. Search здійснює пошук не в іменах файлів, а в файлах. (Хтось знає, як шукати ім’я файлу за межами робочої області?)
JinSnow

22

Щоб замінити рядок в одному файлі (відкритий на даний момент): CTRL + H

Для заміни на рівні робочої області використовуйте: CTRL + SHIFT + H


Примітка. Щоб запустити пошук, натискаючи клавішу Enter, використовуючи Ctrl + Shift + H.
Аарон Франке

19

Це найкращий спосіб.

  1. Спочатку покладіть курсор на елемент і натисніть F2.

  2. Потім введіть нове ім’я та натисніть клавішу Enter. Це дозволить перейменувати всі події у кожному файлі вашого проекту.

Це ідеально підходить для того, коли ви хочете перейменувати декілька файлів. Наприклад, ви можете перейменувати загальнодоступну функцію в службі Angular і оновити всюди, де вона використовується.

Для отримання більш чудових інструментів настійно рекомендую: https://johnpapa.net/refactoring-with-visual-studio-code/


що робити, якщо я хочу перейменувати події лише у поточному файлі?
temirbek

@temirbek я деякий час стежив за цим запитом. Минуло 2+ роки, і вона ще не була реалізована. github.com/Microsoft/vscode/isissue/14836
DonDaniel

Привіт, чи він також перейменовує відповідні папки та імпортує?
Тамаші Кайзен

5

На сторінці прив'язки ключових кодів Visual Studio у розділі Довідки про ярлики клавіатури містять посилання на PDF для кожної основної ОС. Після відкриття знайдіть «Замінити у файлах» або будь-який інший ярлик, який може знадобитися.

Інший спосіб - використовувати палітру команд ( ctrl/cmd+ shift+ P), де ви можете ввести "Замінити", щоб перелічити всі пов'язані команди, включаючи потрібну:

Замініть у файлах ctrl/cmd+ shift+H

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.