Найти и заменить на новую строку в коде Visual Studio

397

Я пробую новый редактор кода Microsoft Visual Studio в среде Linux Fedora. Я хотел бы знать, как заменить новую строку (\ n) вместо некоторого другого текста.

Например, у меня есть текст HTML, как это

<tag><tag> 

который я хотел бы заменить как

<tag>
<tag>

В возвышенном я бы использовал шаблон регулярных выражений, нашел "> <" и заменил на "> \ n <". Как мне сделать это в коде Visual Studio?

Sriram
источник
@RobertMacLean этот вопрос задавали перед помеченным выше вопросом
Шрирам
1
@RobertMacLean создает повторяющийся цикл
Кишан Кумар
Ты это видел.? stackoverflow.com/a/50042582/6597375
Дипу Регунат
На самом деле это не дубликат: другой вопрос касается возврата каретки, этот - о переводе строки, и ответ по какой-то причине не работает.
Джейсон Янг

Ответы:

583

В локальном окне поиска ( ctrl+ f) вы можете вставить новые строки, нажав ctrl+ enter.

Изображение многострочного поиска в локальном поиске

Если вы используете глобальный поиск ( ctrl+ shift+ f), вы можете вставить новые строки, нажав shift+ enter.

Изображение многострочного поиска в глобальном поиске

Если вы хотите искать мультилинии по литералу символа, не забудьте проверить самый правый значок регулярного выражения .

Изображение режима регулярных выражений в поиске заменить


В предыдущих версиях кода Visual Studio это было сложно или невозможно. Более старые версии требуют использования режима регулярных выражений, более старые версии пока не поддерживают поиск новой строки.

Håkon Egset Harnes
источник
6
Ни в версии 0.10.3. Но есть расширение, которое может сделать это: marketplace.visualstudio.com/items/jmallien.ReplaceWithNewline
rmac
14
Обратите внимание, что хотя замена на символы новой строки поддерживается, поиск символов новой строки по-прежнему не работает, пока github.com/Microsoft/vscode/issues/313 не будет исправлен.
C Snover
2
Это не работает на Mac - он буквально заменяет \ r или \ n
Naveen Vijay
38
Обратите внимание, что режим регулярных выражений должен быть включен. Если нет, он не будет использовать перевод строки.
Невес
12
regex поиск \\nи замена \nработ для меня, используя 1.25.0
Грегор
130

В VS Code Release 1.38 вы можете нажать CTRL+ Enterв окне поиска редактора, чтобы добавить символ новой строки.

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

В VS Code Release 1.30 вы можете ввести Shift+ Enterв поле поиска, чтобы добавить символ новой строки, не используя режим регулярных выражений.

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

Начиная с версии 1.3 кода VS , поиск регулярных выражений поддерживает символы новой строки. Чтобы использовать эту функцию, установите окно поиска в режим регулярных выражений и используйте \nв качестве символа новой строки.

Многострочный поиск в VS Code gif

шик
источник
Это дало мне небольшой толчок в правильном направлении. Мне нужна была пустая строка для замены комментариев HTML: <!--[\s\S\n]*?-->И мне не хватало \ n :)
Guntram
Мне нравится эта функция, она работает в полях поиска и замены!
SimplyInk
5
По-прежнему не работает в боковой панели поиска ctrl + shift + f ... -_-
Xunnamius
61

В версии 1.1.1:

  • Ctrl+H
  • Проверьте значок обычного опыта .*
  • Поиск: ><
  • Заменить: >\n<
Эрик Боле-Фейсот
источник
15
Спасибо за упоминание, что вы должны нажать на значок регулярного выражения!
Павел Чернох
24

Также обратите внимание, что после нажатия на значок регулярного выражения, чтобы фактически заменить \nтекст новой строкой, мне пришлось использовать \\nкак поиск и \nкак замену.

Стив Остенберг
источник
1
Привет @Stiv отличный совет, но это действительно должен быть комментарий, так как он не отвечает на вопрос.
Chic
Возможно, не посмотрел в комментариях ... это был ответ, который мне был нужен. Спасибо @stiv!
Джек Райан,
16

Возможным обходным решением будет использование мульти-курсора. выберите> <часть вашего примера, используйте Ctrl+ Shift+ Lили выберите все вхождения. Затем используйте клавиши со стрелками для перемещения всех курсоров между тегами и нажмите клавишу ввода, чтобы вставить новую строку везде.

Это не будет работать во всех ситуациях.

Вы также можете использовать Ctrl+ Dдля выбора следующего совпадения, которое добавляет следующее совпадение к выделению и добавляет курсор. И используйте Ctrl+ K Ctrl+, Dчтобы пропустить выбор.

Бастиан Декнудт
источник
Ctrl+Dотлично! Возможно, вам придется нажать Ctrl+Fсначала, а через несколько Ctrl+Dсекунд или пропустить Ctrl+K Ctrl+D, вы можете нажать, Escчтобы поместить курсор во все варианты выбора!
CPHPython
4

В моей версии VS Code для Mac я выбираю раздел, а затем ярлык Ctrl+ jдля удаления разрывов строк.

tripleonard
источник
1

с v1.31.1 в режиме RegEx функциональность Replace All нарушена. нажатие на эту кнопку заменяет только один экземпляр

ekkis
источник
1

CTRL+ H, затем выберите регулярное выражение (*) и напишите \ n

Укороченная версия: CTRL+ H ALT+ R\ n

TomoMiha
источник