Найти и заменить на новую строку в коде 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.