La primera vez que esto me mordió, estaba copiando un bloque de términos y condiciones de un PDF en una respuesta de soporte. Se veía bien en el PDF. En el momento en que aterrizó en mi editor, se convirtió en una escalera, cada línea se cortaba en una nueva fila a mitad de la página, porque el PDF había dado un duro retorno al final de cada línea visual. Arreglarlo a mano significó eliminar una nueva línea, agregar un espacio y repetirlo cuarenta veces. He creado suficientes herramientas en Toolz.dev para saber cuándo vale la pena automatizar un trabajo, y ésta había estado perdiendo el tiempo silenciosamente durante años. Entonces construí el eliminar la herramienta de saltos de línea, y esta guía es todo lo que aprendí sobre por qué existe el problema y cómo limpiarlo adecuadamente.
TL;Dr: El texto copiado de archivos PDF, correos electrónicos y terminales a menudo tiene un salto de línea al final de cada línea de visualización en lugar de solo al final de cada párrafo. Pasando deja líneas rotas y irregulares. El eliminar la herramienta de saltos de línea elimina esas nuevas líneas y une el texto con un separador que elija, y su modo de reconocimiento de párrafos mantiene las líneas en blanco entre los párrafos para que el resultado se lea como prosa, no como una línea gigante. Todo se ejecuta en su navegador, por lo que no se carga nada.
¿por qué mi texto copiado está lleno de saltos de línea?
La respuesta corta es que un salto de línea y un salto de párrafo son dos cosas diferentes y mucho software los confunde.
Cuando escribe un procesador de textos o un navegador, presiona Intro solo al final de un párrafo. El texto se envuelve automáticamente dentro del párrafo, por lo que las líneas visuales que ve se deciden sobre la marcha según el ancho de la ventana. No hay caracteres de salto de línea dentro del párrafo. Eso se llama ajuste suave y es por eso que el mismo párrafo vuelve a fluir limpiamente cuando cambia el tamaño de la ventana.
Muchas otras fuentes hacen lo contrario. Un PDF almacena la posición de cada línea, por lo que cuando se copia texto, el extractor a menudo coloca un carácter de nueva línea real al final de cada línea que ve en la página. Históricamente, los correos electrónicos de texto sin formato se envolvían en 72 o 76 columnas con un retorno estricto en cada línea, una convención anterior a la web y que aún aparece en listas de correo y respuestas citadas. Los comentarios de código, los archivos de registro y cualquier cosa impresa en un terminal de ancho fijo hacen lo mismo. En todos ellos, la nueva línea no marca el final de un pensamiento, sino el final de una línea física que resultó ser tan ancha.
Cuando lo pegas en un lugar que envuelve suavemente, las dos ideas chocan. Su editor ya envuelve el texto para que quepa y ahora hay devoluciones extra difíciles que acortan las líneas antes de que lleguen al borde. El resultado es la escalera: líneas que se rompen en lugares extraños, se niegan a reflujar y parecen rotas en todos los tamaños de ventanas excepto en aquella de la que fueron copiadas.
¿qué hace eliminar los saltos de línea?
Eliminar saltos de línea significa eliminar esos caracteres de nueva línea y volver a unir las piezas para que las palabras vuelvan a fluir como texto continuo. La única decisión real es qué poner en el espacio donde solía estar cada nueva línea.
La mayoría de las veces quieres un solo espacio, porque la nueva línea reemplazaba el espacio entre dos palabras que normalmente tendría una oración. A veces no quieres nada en absoluto, por ejemplo, cuando un número largo o un token de código se dividía en dos líneas y es necesario volver a unirlo sin espacios. Y a veces quieres una coma u otro separador, porque las líneas eran en realidad una lista y las quieres en una fila como valores separados por comas. La herramienta te ofrece todo esto, además de un campo personalizado para cualquier otra cosa.
Hay un carácter más que vale la pena conocer. Windows termina líneas con dos caracteres, un retorno de carro seguido de una línea de avance, escrito como CRLF. Unix y macOS modernos utilizan una sola línea de avance, LF. El software Mac muy antiguo utilizaba un retorno de carro solitario, CR. Si mezcla texto de diferentes fuentes, puede terminar con una combinación irregular de las tres, y un ingenuo hallazgo y reemplazo que solo busca una de ellas deja atrás a las demás. La herramienta para eliminar saltos de línea normaliza los tres primero, por lo que no importa de dónde viene el texto, cada final de línea se maneja de la misma manera.
¿Cómo elimino los saltos de línea pero conservo mis párrafos?
Esta es la característica que convierte la herramienta de un instrumento contundente a uno útil, por lo que vale la pena comprenderla.
Si simplemente elimina cada nueva línea de un documento, obtiene un párrafo enorme. Todas las oraciones se juntan en una sola línea ininterrumpida y la estructura que hacía que el texto fuera legible desaparece. Eso es ocasionalmente lo que quieres, pero normalmente no lo es. Lo que desea es eliminar las rupturas accidentales de líneas dentro de cada párrafo manteniendo las rupturas deliberadas entre párrafos.
La herramienta distingue los dos mirando líneas en blanco. Una sola nueva línea se trata como una ruptura accidental dentro de un párrafo y se elimina. Una línea en blanco, que consta de dos nuevas líneas seguidas, se trata como un límite de párrafo real y se mantiene. Entonces, un documento que se rompió así:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
sale como dos párrafos limpios con una línea en blanco entre ellos, en lugar de una línea larga. Esta es exactamente la forma del texto copiado de un PDF o de un correo electrónico envuelto, donde cada párrafo está interrumpido internamente pero los párrafos están separados por una línea en blanco. Deje activada la opción mantener el párrafo, que es la predeterminada, y la herramienta hace lo correcto sin más problemas.
Cuando realmente quieras todo en una línea, desactiva esa opción. Cada nueva línea en toda la entrada se reemplaza por el separador elegido, que es como se convierte una columna de valores en una única fila separada por comas.
¿qué separador debo elegir?
El separador es la cadena que reemplaza cada salto de línea eliminado. La elección correcta depende de lo que representan las líneas. Así es como se comportan las opciones comunes en la misma entrada de tres líneas apple, banana, cherry:
| separador | Resultado | Úselo cuando |
|---|---|---|
| Espacio | apple banana cherry |
Las líneas son palabras o fragmentos de oraciones que deben leerse en prosa |
| cero | applebananacherry |
Una sola ficha se dividió entre líneas y debía reunirse sin espacios |
| coma | apple, banana, cherry |
Las líneas son una lista que desea como valores separados por comas |
| Semicolon | apple; banana; cherry |
Necesita un separador de listas que no choque con las comas de los datos |
| Tubería | apple | banana | cherry |
Estás construyendo una fila de tabla de Markdown o un registro delimitado |
| Personalizado | Lo que sea que escribas | Necesitas un carpintero específico como - o una pestaña |
El espacio es el predeterminado porque es correcto con mucha más frecuencia que cualquier otra opción para la prosa ordinaria. Los separadores de listas se vuelven suyos cuando se remodelan datos en lugar de leerlos, por ejemplo, se convierte una columna copiada de una hoja de cálculo en una sola fila que se puede pegar en una consulta.
¿Qué hacen las opciones de limpieza?
Dos alternancias adicionales ordenan la salida más allá de la unión y ambas están activadas de forma predeterminada porque casi siempre ayudan.
Trim elimina los espacios en blanco al principio y al final de cada línea antes de unir las líneas. Esto es importante porque el texto copiado frecuentemente tiene espacios finales que no puedes ver y sangrías al comienzo de una línea que no quieres conservar una vez que la línea ya no es su propia línea. Sin recortar, esos espacios perdidos sobreviven a la unión y aparecen como espacios incómodos en el medio del texto unido.
Colapsar espacios va un paso más allá y reduce cualquier serie de dos o más espacios o pestañas a un solo espacio. Una vez unidas las líneas, es fácil terminar con espacios dobles donde un espacio final se encuentra con un espacio principal, o donde el texto original usó espacios para alinear algo. Colapsarlos te da el espacio único que espera la prosa. Es importante destacar que esto solo toca espacios y pestañas, nunca las nuevas líneas que separan tus párrafos, por lo que no deshace la unión consciente de párrafos.
También hay una opción eliminar líneas vacías, desactivada de forma predeterminada, en el caso en que la entrada tenga líneas en blanco perdidas que no desee que se conviertan en espacios en párrafos. Con él activado, las líneas vacías se eliminan en lugar de conservarse, lo cual es útil para limpiar exportaciones a doble espacio.
¿Es seguro hacer esto en el navegador?
Sí, y este es un punto que me importa porque es toda la filosofía de diseño detrás de Toolz.dev. La herramienta eliminar saltos de línea se ejecuta completamente en su navegador mediante JavaScript. El texto que pega se procesa en la memoria de la página que está mirando y nunca se carga en un servidor. No hay cuenta, ni registro, ni solicitud de red que lleve su contenido a ninguna parte.
Eso importa más de lo que parece a primera vista. El texto que la gente suele necesitar para reflujar es texto que copiaron de algún lugar privado: un contrato de un PDF, un correo electrónico interno, un mensaje del cliente, un bloque de código. Enviar eso a un servidor remoto para que eliminen sus nuevas líneas sería un intercambio de privacidad absurdo para una operación tan trivial. Debido a que el trabajo es local, tampoco hay límite de carga, por lo que un documento muy grande se refluye tan rápido como uno corto, y la herramienta sigue funcionando incluso si su conexión se corta después de que se haya cargado la página. Si desea el argumento más largo de por qué el procesamiento del lado del cliente es el valor predeterminado correcto para utilidades como esta, lo escribí en el guía de privacidad de datos y herramientas online.
¿en qué se diferencia esto de buscar y reemplazar?
Por supuesto, puedes hacerlo tú mismo en cualquier editor buscando y reemplazando, y por un tiempo único está bien. La razón por la que sigo buscando la herramienta dedicada se reduce a las tres cosas que se equivoca al buscar y reemplazar manualmente.
Primero, el problema del párrafo. Un simple reemplazo de una nueva línea con espacio aplana todo en una sola línea, porque no puede distinguir una ruptura dentro del párrafo del límite de un párrafo. Para preservar los párrafos a mano hay que hacer un baile de dos pasos: primero reemplazar la nueva línea doble con un marcador de posición, luego reemplazar las nuevas líneas individuales con espacios y luego volver a colocar las nuevas líneas dobles. Eso es complicado y fácil de equivocar.
En segundo lugar, los finales de línea mixtos. Si su texto tiene una combinación de CRLF, LF y CR, un único patrón de búsqueda y reemplazo pasa por alto algunos de ellos y usted se queda buscando a los rezagados. La herramienta normaliza los tres al frente.
En tercer lugar, la limpieza de espacios en blanco. Después de unirte, normalmente querrás colapsar los espacios dobles y recortar los extremos, lo que consiste en una o dos pasadas de reemplazo más realizadas en el orden correcto. La herramienta pliega todo eso en una sola operación con alternancias visibles, para que puedas ver exactamente lo que hace cada una y ajustarla sin rehacer todo.
Nada de esto es imposible a mano. Es lo suficientemente lento y propenso a errores como para que una herramienta especialmente diseñada se amortice por segunda o tercera vez que la necesita. La misma lógica es por qué mantengo un estante completo de pequeñas utilidades de texto, como eliminador de líneas duplicadas para deduplicar una lista y el clasificador de líneas para pedir uno, en lugar de buscar un script para raspar cada vez.
¿Cuándo me gustaría eliminar todos los saltos de línea?
Hay casos genuinos para colapsar todo en una sola línea, y vale la pena mencionarlos para saber cuándo desactivar la opción de párrafo.
El más claro es la remodelación de datos. Copias una sola columna de una hoja de cálculo y llega como un valor por línea. Lo desea como una lista separada por comas para colocarlo en un SQL IN (...) cláusula o matriz de configuración. Desactive los intervalos de párrafo de mantenimiento, elija el separador de comas y tendrá su fila. Lo mismo se aplica a la creación de una fila de tabla de Markdown con el separador de tuberías o al ensamblaje de una cadena de consulta.
Otro es volver a unir un token que estaba envuelto. Una URL larga, un blob base64 o una clave API que se dividió entre líneas en un correo electrónico debe convertirse en una cadena continua sin separador. Desactive los saltos de párrafo, no elija nada como separador y los fragmentos se fusionarán nuevamente en un solo token.
La regla general es simple. Si está limpiando prosa para que la lea un humano, mantenga los párrafos puestos. Si está remodelando el texto en un único valor legible por máquina, apáguelo. Poder alternar entre los dos en la misma entrada, viendo la actualización del resultado a medida que avanza, es la razón por la que construí ambos comportamientos en una herramienta en lugar de dos. Y si el texto limpio se dirige a algún lugar, seguirá editando el kit más amplio del sitio, desde el Convertidor de mayúsculas y minúsculas al contador de palabras, continúa donde termina este. Para el conjunto más amplio de ayudantes de texto y código cotidianos, el Guía de herramientas de productividad para desarrolladores es un buen mapa y el Guía de herramientas de codificación cubre el lado del formato.
Preguntas frecuentes
¿cómo elimino los saltos de línea del texto?
Pegue su texto en la herramienta Eliminar saltos de línea y mantenga la configuración predeterminada. Reemplaza cada salto de línea dentro de un párrafo con un solo espacio y muestra el resultado unido instantáneamente, que luego puede copiar. Todo sucede en tu navegador.
¿cómo guardo mis párrafos al eliminar saltos de línea?
Deje activada la opción mantener-párrafo-breaks, que es la predeterminada. Luego, la herramienta solo aplana los saltos de una sola línea dentro de cada párrafo y mantiene una línea en blanco entre los párrafos, de modo que la estructura del texto se conserva en lugar de colapsar en una sola línea.
¿Puedo unir todas las líneas en una sola línea?
Sí. Desactive la opción de mantener los descansos de párrafos y toda la entrada se colapsará en una línea continua, lo cual es útil para convertir una columna de valores en una sola fila separada por comas o volver a unir un token que se dividió entre líneas.
¿cuál es la diferencia entre un salto de línea y un regreso de vagón?
Un salto de línea es el carácter de nueva línea utilizado en Unix y los sistemas Mac modernos. Un retorno de carro es el final de Mac más antiguo, y Windows usa ambos juntos como CRLF. La herramienta normaliza los tres, por lo que cualquier texto fuente se une de la misma manera independientemente de su procedencia.
¿Cómo reemplazo los saltos de línea con una coma en lugar de un espacio?
Elija el separador de comas. Cada salto de línea eliminado se reemplaza con una coma y un espacio, lo que convierte una lista de líneas en una lista separada por comas. Una opción personalizada le permite utilizar cualquier carpintero que desee, como una pestaña o un guión.
¿Por qué la salida todavía tiene espacios dobles?
Eso sucede cuando las líneas ya terminaban en espacios antes de unirse. Active la opción de espacios de colapso para reducir cualquier serie de espacios o pestañas a un solo espacio, y active el recorte para eliminar primero los espacios al final de las líneas. Ambos están activados de forma predeterminada.
¿Eliminar saltos de línea cambia las palabras de mi texto?
No. La herramienta solo elimina los caracteres de la nueva línea y, si lo solicita, ordena los espacios en blanco. Las palabras, la puntuación y su orden se dejan exactamente como estaban, por lo que el significado del texto no cambia.
¿Es seguro pegar texto privado aquí?
Sí. Todo el procesamiento se realiza íntegramente en su navegador con JavaScript. Su texto nunca se carga ni almacena y la herramienta sigue funcionando sin conexión de red una vez que la página se ha cargado, lo que la hace segura para contratos, correos electrónicos y códigos.



