Как мне найти и заменить все вхождения (во всех файлах) в Visual Studio Code?

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

Мне кажется, что это возможно, поскольку Ctrl + Shift + F позволяет мне просто искать в папке, но я не знаю, что делать дальше.

Я просмотрел различные комбинации клавиш https://code.visualstudio.com/Docs/ настройка/привязки клавиш

Но я только нашел, как заменить все вхождения в открытом файле (Ctrl + h)

Вся помощь с благодарностью принята, это сводит меня с ума.


417

Я использую Visual Studio Code 1.8, и эта функция доступна. Но сначала это немного сложно понять, и (на момент написания) в документации четко не объясняется, как его использовать, поэтому вот как это работает, шаг за шагом:

Invoke Заменить в файлах (в меню “Правка” или с помощью сочетания клавиш Ctrl + Shift + H )

Вы увидите стандартный ввод поиска/замены, заменяющий панель файлов слева:

Введите строку поиска и строку замены, затем нажмите Enter. Он может выполнить повторный поиск во всех файлах, затем он покажет предлагаемые изменения во всех ваших файлах проекта, но обратите внимание, эти изменения еще не были внесены! Вот как это выглядит например:

Теперь вам нужно внесите изменения (и даже после этого вы должны сохранить измененные файлы .)

Вы можете внести эти изменения различными способами:

1) Внесите все изменения во все файлы сразу.

Щелкните значок замены рядом со строкой замены (примечание: вы получите диалоговое окно для подтверждения этого массового действия.)

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

Щелкните значок замены рядом с именем файла (примечание: значок появляется только при наведении курсора на строку имени файла )

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

Щелкните значок замены рядом к отдельному изменению: (примечание: значок появляется только при наведении курсора на строку изменения)

Все эти файлы теперь изменены в редакторе и еще не сохранены на диск.

Use File -> Save All (или Ctrl + Alt + S )

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

отредактировал 11 декабря ’19 в 18:47
21 дек. ’16 в 22: 21
  • 1
    Можно ли сохранить «поиск-замену»? Я часто ищу «class =» и заменяю его на «className =» – Руне Джеппесен, 28 августа 2017 г., 07:49
  • 1
    Можно ли пропустить последний шаг и выполнить поиск без вывода сообщений и заменить? Если я выполняю тривиальный поиск и замену, я не хочу сохранять каждый отдельный файл. – kayasky 7 сен 2017 в 14:20
  • 1
    Я не уверен, что ответ на любой из эти вопросы. Но @satJ, обратите внимание в Ctrl + Alt + S сохраняет все измененные файлы сразу, так что это довольно быстро и легко. – Джефф Уорд, 08 сен. 2017, 13:27
  • Черт возьми, это опасно, менять все файлы по умолчанию. Есть ли команда для поиска/замены в одном файле? – Александр Миллс, 20 ноя. 2017, в 23:56
  • Текущее значение по умолчанию для сохранения всего – Ctrl-k, за которым следует буква s. Ctrl-k, а затем Ctrl + w закроют все ваши окна после того, как программы открыли их несколько. – Ребекка, 9 фев. 2018 в 16:47
| показать 7 дополнительных комментариев

Я использую Visual Studio Code 1.8, и эта функция доступна. Но сначала это немного сложно понять, и (на момент написания) в документации четко не объясняется, как его использовать, поэтому вот как это работает, шаг за шагом:

Invoke Заменить в файлах (в меню “Правка” или с помощью сочетания клавиш Ctrl + Shift + H )

Вы увидите стандартный ввод поиска/замены, заменяющий панель файлов слева:

Введите строку поиска и строку замены, затем нажмите Enter. Он может выполнить повторный поиск во всех файлах, затем он покажет предлагаемые изменения во всех ваших файлах проекта, но обратите внимание, эти изменения еще не были внесены! Вот как это выглядит например:

Теперь вам нужно внесите изменения (и даже после этого вы должны сохранить измененные файлы .)

Вы можете внести эти изменения различными способами:

1) Внести все изменения сразу во все файлы.

Щелкните значок замены рядом со строкой замены (обратите внимание: вы получите диалоговое окно для подтверждения этого массового действия.)

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

Щелкните значок замены рядом с именем файла (примечание: значок появляется только при наведении курсора на строку имени файла)

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

Щелкните значок замены рядом к отдельному изменению: (примечание: значок появляется только при наведении курсора на строку изменения)

Все эти файлы теперь изменены в редакторе и еще не сохранены на диск.

Use File -> Save All (или Ctrl + Alt + S )

Обновить : Я не уверен, когда это было добавлено, но если вы нажмете кнопку «Заменить все» и увидите это диалоговое окно, нажатие «Заменить» изменит и сохранит все. файлов в один клик:


35

Чтобы заменить строку в одном файле (открытом в данный момент): CTRL + H

Для замены на уровне рабочей области используйте: CTRL + SHIFT + H

отредактировано 10 июля ’19 в 10:32
ZF007
3,20788 золотых знаков2525 серебряных знаков3939 бронзовых знаков
ответил 05 марта ’19 в 08:39
  • Примечание. При использовании Ctrl + Shift + H для запуска поиска необходимо нажать клавишу ВВОД. – Аарон Франке 19 ноя. ’19 в 23:16
добавить комментарий |

Чтобы заменить строку в одном файле (открытом в данный момент): CTRL + H

Для замены на уровне рабочей области используйте: CTRL + SHIFT + H


Обновить – начиная с версии 1.3 (июнь 2016 г.) в Visual Studio Code возможен поиск и замена. Используя ctrl + shift + f, вы можете искать и заменять текст во всех файлах.


Похоже, в настоящее время это невозможно (версия 1.1.1 (апрель 2016 г.))

“В: Можно ли выполнять глобальный поиск и замену?

A: Эта функция еще не реализована, но вы можете ожидать, что она появится в будущем! “

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

Похоже, это также запрошено сообществом: https://github. com/Microsoft/vscode/issues/1690


23

Это лучший способ.

  1. Сначала поместите курсор на элемент и нажмите F2.

  2. Затем введите новое имя и нажмите клавишу Enter. Это приведет к переименованию всех вхождений в каждом файле в вашем проекте.

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

Я настоятельно рекомендую другие отличные инструменты: https://johnpapa.net/ рефакторинг-с-visual-studio-code/

ответил 31 января ’18 в 16:03
  • что, если я хочу переименовать вхождения только в текущем файле? – temirbek 08 янв., В 8:17
  • @temirbek Я уже давно слежу за этим запросом. Прошло 2+ года, а это еще не реализовано. github.com/Microsoft/vscode/issues/14836 – DonDaniel, 8 января 2019 г., 17:30
  • Привет, он также переименовывает связанные папки и импортирует? – Кайдзен Тамаши 16 нояб. ’19 в 07:28
добавить комментарий |

Это лучший способ.

  1. Сначала наведите курсор на элемент и нажмите F2.

  2. Затем введите новое имя и нажмите клавишу Enter. Это приведет к переименованию всех вхождений в каждом файле в вашем проекте.

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

Я настоятельно рекомендую другие отличные инструменты: https://johnpapa.net/ рефакторинг-с-visual-studio-code/


13

Обновление для 2020 года

Если вы используете функцию поиска для поиска по файлам ( Ctrl + Shift + F ) можно легко упустить из виду, как преобразовать поиск в поиск и заменить в пользовательском интерфейсе.

Вот типичный результат поиска:

Чтобы преобразовать это в поиск и заменить, вам нужно щелкнуть значок стрелки, чтобы слева от поля ввода поиска. Это откроет параметры замены, как показано ниже.. Обратите внимание, что значок стрелки теперь направлен вниз.

Сочетание клавиш Ctrl + Shift + H также будет работать для доступа к поиску и замене.

Ссылка на документы VSCode на поиск и замена: https://code.visualstudio.com/docs/editor/codebasics#_search-and-replace

ответил 08 окт.2020 в 14:36 ​​
  • Общая проблема сейчас заключается в том, что после 10000 результатов VSCode прекращает поиск. Есть ли обходные пути для этого? Т.е. итеративный поиск + замена аддона? – 9 янв, дек. ’20 в 13:28
добавить комментарий |

Обновление на 2020 год

Если вы используете функцию поиска для поиска по файлам ( Ctrl + Shift + F ) можно легко упустить из виду, как преобразовать поиск в поиск и заменить в пользовательском интерфейсе.

Вот типичный результат поиска:

Чтобы преобразовать это в поиск и заменить, вам нужно щелкнуть значок стрелки слева от поля ввода поиска. Это откроет параметры замены, как показано ниже. Обратите внимание, что значок стрелки теперь направлен вниз.

Сочетание клавиш Ctrl + Shift + H также будет работать для доступа к поиску и замене.

Ссылка на документы VSCode на поиск и замена: https://code.visualstudio.com/docs/editor/codebasics#_search-and-replace


8

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

Другой способ – использовать палитру команд ( ctrl/cmd + shift + P ), где вы можете ввести «заменить», чтобы вывести список всех связанных команд, включая ту, которую вы хотите:

Заменить в файлах ctrl/cmd + shift + H

отредактировано 15 мая ’19 в 22:34
Magnus Lind Oxlund
13944 серебряных знака1717 бронзовых знаков
ответил 16 янв. в 3:50
добавить комментарий |

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

Другой способ – использовать Командную палитру ( ctrl/cmd + shift + P ), где вы можете ввести «заменить», чтобы вывести список всех связанных команд, включая ту, которую вы хотите:

Заменить в файлах ctrl/cmd + shift + H


0

Существует 2 технически одинаковых метода

  1. Сначала наведите курсор на слово и нажмите F2. Замените слово и нажмите Enter.

  2. Сначала наведите курсор на слово и щелкните его левой кнопкой мыши. Выберите параметр «Переименовать символ». Замените слово и нажмите Enter.

ответил Au g 30 ’20 в 06:32
добавить комментарий |

Существует 2 метода, технически одинаковых

  1. Сначала наведите курсор на слово и нажмите F2. Замените слово и нажмите Enter.

  2. Сначала наведите курсор на слово и щелкните его левой кнопкой мыши. Выберите параметр «Переименовать символ». Замените слово и нажмите Enter.



Найти и заменить в Visual Код студии

В файле, который я редактирую в VSCode, есть следующая строка:

.......... ..... 111 ......... 111 ............. 111 ..

Я хочу заменить все . с 0 . Однако, когда я выделяю строку и выполняю поиск/замену для . s, все , . заменяются в документе, а не только в выбранной строке, даже когда я нажимаю кнопку «Найти в выделенном». Это ошибка? В других редакторах, если я выберу кусок текста, а затем выполню поиск/замену, он найдет/заменит совпадения только в выбранном блоке.

Ниже приведен фрагмент, который вы должны иметь возможность воспроизвести проблему с помощью. Знак ............... 111 ......... 111 ............. 111 .. находится внутри функции test_unicode .

  def test_simple2 (self): "" "Простой тест преобразования CSV с пустыми полями, подробнее  сложный idx, разные pack_size. 100011000001000 -> .......... 111 .................... 111 .........  .11111 .......... 111 .. "" "field_width_stream = pablo.BitStream (int ('1000110001000001000', 2)) idx_marker_stream = pablo.BitStream (int ('11101', 2)) pack_size =  4 target_format = TransductionTarget.JSON csv_column_names = ["col1", "col2", "col3", "col4", "col5"] pdep_marker_stream = pablo.BitStream (generate_pdep_stream (field_width_stream, idx_marker_stream), размер_колонки, idx_marker_stream, pack_size.  assertEqual (pdep_marker_stream.value, 63050402300395548) def test_unicode (self): "" "Имена столбцов, отличные от ascii. Использование UTF8. Жестко заданный размер стандартного байта SON должен оставаться прежним, стандартные байты имени столбца должны расширяться. 100010010000000 -> 2 + 4  + 9 2 + 4 + 6 2 + 4  + 7 ............... 111 ......... 111 ............. 111 .. "" "field_width_stream = pablo  .BitStream (int ('100010001000', 2)) idx_marker_stream = pablo.BitStream (1) pack_size = 64 target_format = TransductionTarget.JSON csv_column_names = ["한국어", "中文", "English"] pdep_marker_destream = pablo.BitStream_stream_pablo.BitStream  (field_width_stream, idx_marker_stream, pack_size, target_format, csv_column_names)) self.assertEqual (pdep_marker_stream.value, 1879277596)  

Я использую VSCode 1.12.2 в Ubuntu 16.04.


Мне удалось заставить его работать, но рабочий процесс оставляет желать лучшего:

  1. control + H , чтобы открыть «Найти/заменить»
  2. Выделите строку текста
  3. Щелкните значок «Найти в выделенном» справа Alt L или L в macOS)
  4. Введите символы поиска и замены в их вводы.
  5. Щелкните значок “Заменить все”.

Работает но вы должны пройти через работуfl для каждого нового выбора (кроме CTR + H , конечно). Кстати, у меня такое же поведение в Sublime Text.

Не могли бы вы использовать regExp, чтобы найти свои строки? Они содержат только. ‘s и 1?


21

Из Разработчики VSCode:

Раньше мы автоматически включали поиск в выделении при открытии виджета поиска с выделением, но это было слишком легко запустить случайно и вызвало много жалоб. Вероятно, вы захотите установить “editor.find.autoFindInSelection”: true, что заставит его работать так, как вы ожидаете.

Если кому-то интересно, проблема VSCode GitHub содержит более подробную информацию.

EDIT: опция autoFindInSelection доступна начиная с VSCode 1.13. Эта версия в настоящее время находится в разработке (по состоянию на 07.06.2017), поэтому это исправление не будет работать, пока не будет выпущена новая версия.

отредактировал 20 июня ’20 в 9:12
Сообщество ♦
111 серебряный значок
ответил 7 июня ’17 в 19:54
  • 6
    Однако это не решит проблему … Единственная проблема в том, что если вы выполняете последовательные F/R каждый раз, когда выбираете новый набор текста вам нужно перефокусировать поле поиска , чтобы оно изменило свой контекст поиска . – Роберт Коритник, 14 декабря 2017 г., 10:00
  • 1
    Мне показалось, что изменение параметра помогло, хотя VS Code по-прежнему отмечает все появления поискового запроса во всем документе, даже если он заменяет только в выборе. – Маркус Мангельсдорф, 22 июн. ’18 в 09:54
добавить комментарий |

От разработчиков VSCode:

Мы использовали для включения поиска в выделении автоматически, когда открытие виджета поиска с выбором, но его было слишком легко запустить случайно, и возникло много жалоб. Вероятно, вы захотите установить “editor.find.autoFindInSelection”: true, что заставит его работать так, как вы ожидаете.

Если кому-то интересно, проблема VSCode GitHub содержит более подробную информацию.

EDIT: опция autoFindInSelection доступна начиная с VSCode 1.13. Эта версия в настоящее время находится в разработке (по состоянию на 07.06.2017), поэтому это исправление не будет работать, пока не будет выпущена новая версия.


18

Это более общий ответ для других пользователей, которые приходят сюда, просто желая использовать базовые функции поиска и замены.

На Mac вы можете нажать Command + Option + F чтобы открыть «Найти и заменить»:

В качестве альтернативы вы можно нажать Command + F , чтобы открыть «Найти», а затем щелкнуть маленький треугольник слева, чтобы отобразить поле «Заменить»:

отредактировано 26 июня ’19 в 20:30
ответил 20 апреля ’19 в 16:18
  • 1
    У меня включена великолепная раскладка клавиатуры, поэтому я не уверен, работает ли она для всех, но я смог использовать CMD + OPT + f для открытия найти и заменить немедленно – Джулиан 26 июня ’19 в 19:28
  • @ Джулиан, милая! У меня нет расширенной раскладки клавиатуры, но она все еще работает. Я обновил ответ. Спасибо. – Сурагч, 26 июня ’19, 20:30
  • 2
    спасибо! Кроме того, забыл упомянуть пару других забавных фактов: если вы нажмете CMD + ENTER, это установит ваш поиск и замену для всего файла. В противном случае вы можете пройти каждый из них с помощью Enter. Вы также можете выполнить глобальный поиск и замену проекта, выполнив CMD + SHIFT + H – Julian 26 июня ’19 в 21:48
  • Command + Option + F включил его для первого использования, после этого Command + F будет достаточно, чтобы получить панель поиска/замены. – otayeby 16 июл. ’20 в 22:42
добавить комментарий |

Это более общий ответ для других пользователей, которые приходят сюда, просто желая использовать базовые функции поиска и замены.

На Mac вы можете нажать Command + Option + F , чтобы откройте “Найти и заменить”:

Кроме того, вы можете нажмите Command + F , чтобы открыть «Найти», а затем щелкните маленький треугольник слева, чтобы отобразить поле «Заменить»:


12

Следующий рабочий процесс оказался довольно безболезненным:

  1. Выбор текстовой области с помощью мыши или клавиатуры.
  2. Ctrl + H для переключения поиска и замены
  3. Alt + L для переключения поиска в выделенном
  4. Ctrl + Alt + Enter для замены все (или введите для замены отдельно)
ответил 16 мая ’18 в 18:55
  • Как это отличается от ответа выше? Вы просто опустили фактический ввод текста поиска и замены и поменяли местами первые два шага, что не имеет значения. – Марк, 17 сен. ’18 в 13:54
  • Комментарий Alt + L при щелчке мышью делает его другим (читай: лучше) – Мэтт, 15 ноября 2018, 18:26
  • Да! Это естественный процесс – сначала выделите текст, затем откройте Найти и заменить , затем выберите Найти в выделенном , затем введите термин для поиска и замены и, наконец, Заменить все . – TheJavaGuy-Иван Милосавлевич 25 мая ’20 в 8:38
добавить комментарий |

Я обнаружил, что следующий рабочий процесс довольно безболезнен:

  1. Выберите текстовую область с помощью мышь или клавиатура.
  2. Ctrl + H для переключения поиска и замены
  3. Alt + L для переключения поиска в выделении
  4. Ctrl + Alt + Enter для замены всех (или Enter для замены по отдельности)

4

На Mac:

  • Выделите текст
  • Нажмите command + shift + L
ответил 15 дек. ’19 в 14:45
добавить комментарий |

На Mac:

  • Выделите текст
  • Нажмите command + shift + L

1

Поскольку иногда мы могли бы иметь похожие названия вещей, поэтому вы не хотите выделять все, одна из моих любимых последовательностей сочетаний клавиш – выбрать следующее вхождение:

  1. Использовать shift и стрелки, чтобы выделить термин, который вы хотите сопоставить.
  2. Используйте Ctrl + d , чтобы выделить следующее вхождение термина.

На странице документации “Базовое редактирование в VS Code” есть несколько чрезвычайно полезных вариантов поиска и замены.. Один чрезвычайно полезный ярлык – выбор столбца (блока).

ответил 18 ноя.2020, 17:58
добавить комментарий |

Поскольку иногда мы могли бы иметь похожие названия вещей, поэтому вы не хотите выделять все, одна из моих любимых последовательностей быстрых клавиш – выбрать следующее вхождение:

  1. Используйте shift и стрелки, чтобы выделить термин, который вы хотите сопоставить.
  2. Используйте Ctrl + d , чтобы выделить следующее вхождение термина.

На странице документации” Основное редактирование в VS Code “есть несколько чрезвычайно полезных вариантов поиска и замены. Один чрезвычайно полезный ярлык – выбор столбца (рамки).

Оцените статью
futurei.ru
Добавить комментарий