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


397

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

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

<tag><tag> 

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

<tag>
<tag>

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



@RobertMacLean этот вопрос задавали перед помеченным выше вопросом
— Шрирам

1
@RobertMacLean создает повторяющийся цикл
— Кишан Кумар


На самом деле это не дубликат: другой вопрос касается возврата каретки, этот - о переводе строки, и ответ по какой-то причине не работает.
— Джейсон Янг

Ответы:


583

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

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

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

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

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

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


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


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


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для удаления разрывов строк.


1

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


1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.