Encuentre y reemplace con una nueva línea en Visual Studio Code

397

Estoy probando el nuevo editor de código de Microsoft Visual Studio en el entorno Linux Fedora. Me gustaría saber cómo reemplazar la nueva línea (\ n) en lugar de otro texto.

Por ejemplo, tengo un texto html como este

<tag><tag> 

que me gustaría reemplazar como

<tag>
<tag>

En sublime, usaría el patrón regex y buscaría "> <" y lo reemplazaría con "> \ n <" ¿Cómo logro esto en Visual Studio Code?

Sriram
fuente
Posible duplicado de Use un retorno de carro en VS Code replace string
Robert MacLean
@RobertMacLean esta pregunta se hizo antes de la pregunta etiquetada anteriormente
Sriram
1
@RobertMacLean creando un ciclo duplicado
Kishan Kumar
Viste esto.? stackoverflow.com/a/50042582/6597375
Deepu Reghunath
En realidad, no es un duplicado: la otra pregunta se refiere al retorno de carro, esta vez a la nueva línea, y no, la respuesta no funciona para el retorno de carro por alguna razón.
Jason Young

Respuestas:

581

En el cuadro de búsqueda local ( ctrl+ f) puede insertar nuevas líneas presionando ctrl+ enter.

Imagen de búsqueda multilínea en búsqueda local

Si usa la búsqueda global ( ctrl+ shift+ f) puede insertar nuevas líneas presionando shift+ enter.

Imagen de búsqueda multilínea en búsqueda global

Si desea buscar líneas múltiples por el carácter literal, recuerde verificar el ícono de expresiones regulares más a la derecha .

Imagen del modo regex en búsqueda reemplazar


En versiones anteriores del código de Visual Studio, esto era difícil o imposible. Las versiones anteriores requieren que use el modo regex, las versiones anteriores aún no admitían la búsqueda de nueva línea.

Håkon Egset Harnes
fuente
66
Ni en la versión 0.10.3. Pero hay una extensión que puede hacer esto: marketplace.visualstudio.com/items/jmallien.ReplaceWithNewline
rmac
14
Tenga en cuenta que, aunque se admite la sustitución por caracteres de nueva línea, la búsqueda de caracteres de nueva línea todavía no funciona hasta que se solucione github.com/Microsoft/vscode/issues/313 .
C Snover
2
Esto no funciona en Mac, literalmente reemplaza \ r o \ n
Naveen Vijay
38
Tenga en cuenta que el modo regex debe estar activado. Si no, no usará una nueva línea.
neves
12
Regex buscar \\ny reemplazar con \ntrabajos para mí, usando 1.25.0
Gregor
130

Con VS Code versión 1.38 puede presionar CTRL+ Enteren el cuadro de búsqueda del editor para agregar un carácter de nueva línea.

ingrese la descripción de la imagen aquí

Con VS Code versión 1.30 , puede escribir Shift+ Enteren el cuadro de búsqueda para agregar un carácter de nueva línea sin necesidad de usar el modo regex.

ingrese la descripción de la imagen aquí

Desde VS Code versión 1.3 , el regex find ha admitido caracteres de nueva línea. Para usar esta función, configure la ventana de búsqueda en modo regex y úsela \ncomo el carácter de nueva línea.

Multilínea encontrar en VS Code gif

Elegante
fuente
Esto me dio un pequeño empujón en la dirección correcta. Necesitaba la línea vacía para reemplazar los comentarios HTML: <!--[\s\S\n]*?-->y me faltaba el \ n :)
Guntram
Me encanta esta función, ¡también funciona en los campos de búsqueda y reemplazo!
SimplyInk
55
Todavía no funciona en la barra lateral de búsqueda ctrl + shift + f ... -_-
Xunnamius
61

En la versión 1.1.1:

  • Ctrl+H
  • Verifique el ícono de exp regular .*
  • Buscar: ><
  • Reemplazar: >\n<
Eric Bole-Feysot
fuente
15
¡Gracias por mencionar que debes presionar el ícono regexp!
Paul Chernoch
24

También tenga en cuenta que, después de presionar el icono de expresiones regulares, para reemplazar el \ntexto con una nueva línea, tuve que usar \\ncomo búsqueda y \ncomo reemplazo.

Stiv Ostenberg
fuente
1
Hola @Stiv gran consejo, pero esto realmente debería haber sido un comentario ya que no responde a la pregunta.
Chic
Podría no haber mirado en los comentarios ... esta fue la respuesta que necesitaba. Gracias @stiv!
Jack Ryan
16

Una posible solución sería usar el cursor múltiple. seleccione la parte> <de su ejemplo use Ctrl+ Shift+ Lo seleccione todas las ocurrencias. Luego use las teclas de flecha para mover todos los cursores entre las etiquetas y presione Intro para insertar una nueva línea en todas partes.

Esto no funcionará en todas las situaciones.

También puede usar Ctrl+ Dpara seleccionar la siguiente coincidencia, que agrega la próxima coincidencia a la selección y agrega un cursor. Y use Ctrl+ K Ctrl+ Dpara omitir una selección.

Bastiaan Deknudt
fuente
Ctrl+D¡es genial! ¡Es posible que deba presionar Ctrl+Fprimero y después de unos Ctrl+Dsegundos o saltar Ctrl+K Ctrl+D, puede presionar Escpara colocar el cursor en todas las selecciones!
CPHPython
4

En mi versión para Mac de VS Code, selecciono la sección, luego el atajo es Ctrl+ jpara eliminar los saltos de línea.

tripleonard
fuente
1

con v1.31.1 en modo RegEx, la funcionalidad Reemplazar todo está rota. hacer clic en ese botón reemplaza solo una instancia

ekkis
fuente
1

CTRL+ H, luego seleccione regex (*) y escriba \ n

Versión más corta: CTRL+ H ALT+ R\ n

TomoMiha
fuente