Añadir prefijo a cada línea
Ponga la misma marca al principio de cada línea: con dos barras y un espacio como prefijo, first line, second line y third line se convierten en 3 líneas comentadas. Una almohadilla comenta scripts de consola y el signo mayor que cita un correo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- first line second line third line
- Prefijo
- //
- Entrada
- first line second line third line
- Número de líneas
- 3
- Líneas
- // first line, // second line, // third line
- Con prefijo
- // first line // second line // third line
Una herramienta para añadir un prefijo a cada línea convierte un pegado en bruto de código, cuerpo de correo, notas o lista de verificación en un bloque marcado de forma uniforme que puede depositar en tickets, revisiones y documentación. Introduzca cualquier cadena no vacía de una o varias líneas más el prefijo que desee al inicio de cada línea—opciones habituales son doble barra y espacio para comentarios de JavaScript, almohadilla y espacio para shell o Python, mayor-que y espacio para citas al estilo correo, o dos espacios y un guion para listas indentadas. La herramienta normaliza saltos de Windows y Mac clásico, divide en cada salto de línea y antepone su prefijo a cada segmento, incluidas las líneas interiores vacías, de modo que la forma del documento se mantiene estable.
Cómo funciona anteponer un prefijo a cada línea
Anteponer un prefijo a las líneas es uno de los patrones de edición masiva más antiguos en programación y escritura técnica: cada línea visual recibe el mismo marcador inicial para que se pueda comentar un bloque entero, citar un mensaje o marcar una lista sin hacer clic línea a línea en un editor. Esta capacidad implementa esa regla cotidiana sobre texto plano en lugar de documentos de texto enriquecido o multi-cursores de IDE.
Primero se comprueba la entrada: text ausente, un valor que no es cadena, o una cadena vacía tras recortar espacios se rechaza para que los pegados en blanco nunca parezcan un éxito. Los saltos se normalizan de modo que Windows CRLF, Mac clásico CR y Unix LF se convierten en una sola forma LF antes de dividir. El divisor rompe entonces la cadena en cada LF; cada segmento resultante—incluidos los segmentos vacíos entre saltos consecutivos—es una línea y recibe el mismo prefijo al inicio.
El contenido interior de cada línea no se altera: solo se modifica el comienzo. Cuando necesite números secuenciales en lugar de un marcador fijo, use una capacidad de numeración de líneas; cuando necesite quitar espacios de los bordes de línea, use una herramienta de recorte por línea. Esta página solo trata de anteponer una cadena elegida a cada línea de texto plano.
Consejos prácticos, límites y cuándo usar esta herramienta
Use esta capacidad cuando la intención de búsqueda sea añadir prefijo a cada línea, anteponer texto a las líneas, comentar un bloque de código o citar cada línea de un correo. Pegue un fragmento de código y fije prefix en doble barra y espacio para comentarlo en una nota de revisión; use almohadilla y espacio para scripts de shell; use mayor-que y espacio para convertir una respuesta pegada en una cita en bloque; use dos espacios y un guion para convertir líneas planas en un marcador de lista anidada.
Tenga en cuenta los saltos finales intencionados: un LF final crea un último segmento vacío que aún recibe el prefijo, lo que coincide con cómo muchos editores tratan los saltos de fin de archivo. Las líneas individuales extremadamente largas siguen contando como una línea cada una; la herramienta no envuelve por ancho de caracteres. El origen HTML y Markdown se prefija como cadenas en bruto; elimine el marcado primero si solo desea líneas de prosa visibles.
Esta página no es un numerador secuencial de líneas, ni un recortador por línea, ni un motor de buscar y reemplazar, ni un multi-cursor de IDE completo. Prefiera la numeración de líneas cuando los revisores deban citar índices exactos; prefiera el recorte por línea cuando el problema sean espacios iniciales irregulares; prefiera esta capacidad cuando cada línea necesite el mismo marcador fijo.
Al enseñar estilo de código, prefije el mismo fragmento dos veces con marcadores distintos para que los aprendices vean cómo la sintaxis de comentarios difiere entre lenguajes mientras la transformación se mantiene estable.
Qué puede hacer con ella
Comentar bloques de código
Pegue un fragmento, fije prefix en "// " o "# ", y obtenga un bloque totalmente comentado listo para tickets, revisiones o notas de desactivación temporal.
Citar respuestas de correo y chat
Anteponga "> " a cada línea para convertir un mensaje pegado en una cita clásica al estilo correo, útil en respuestas y documentación.
Construir listas marcadas o indentadas
Añada " - ", "* " o un marcador personalizado a líneas planas para que listas de verificación y notas compartan un estilo de lista coherente.
Preguntas frecuentes
¿Cómo se definen las líneas?
Tras normalizar CRLF y CR a LF, el texto se divide en cada LF. Cada segmento—incluidos los vacíos entre saltos consecutivos—recibe el mismo prefijo al inicio.
¿Qué ocurre con la entrada vacía?
Un prefix ausente o no cadena también falla la validación.
¿Puede estar vacío el prefijo?
Sí. Una cadena prefix vacía está permitida y actúa como no-op tras normalizar saltos. Los prefijos no cadena o demasiado largos (más de 256 caracteres) se rechazan.
¿Añade números de línea secuenciales?
No. Antepone la misma cadena fija a cada línea. Use una herramienta de numeración de líneas cuando necesite etiquetas al estilo 1., 2., 3.
¿Es gratuita la herramienta de prefijos?
La herramienta del navegador es gratuita y se ejecuta en local.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/prefix-lines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"first line\nsecond line\nthird line","prefix":"// "}'const res = await fetch("https://api.kit.forhosting.com/str/prefix-lines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "first line\nsecond line\nthird line",
"prefix": "// "
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/prefix-lines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "first line\nsecond line\nthird line",
"prefix": "// "
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/prefix-lines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"first line\\nsecond line\\nthird line","prefix":"// "}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"first line\nsecond line\nthird line","prefix":"// "}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/prefix-lines", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "first line\nsecond line\nthird line",
"prefix": "// "
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.prefix_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 100000 |
max_prefix_chars | 256 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
El texto vacío o solo con espacios se rechaza con un error claro invalid_input para que la automatización nunca trate un formulario en blanco como una transformación exitosa. La ruta es lógica de cadena pura—sin red, sin semillas aleatorias, sin dependencia del reloj—de modo que el ejecutor gratuito del navegador y la API prepago devuelven el mismo JSON cada vez que se invoca.
Cómo funciona anteponer un prefijo a cada línea
El campo prefix es obligatorio como cadena y puede estar vacío si solo desea normalizar saltos de línea; los prefijos que no son cadena o superan el tamaño fallan con invalid_input.
Cómo llamar a la API y qué contiene la respuesta
La cadena prefix puede estar vacía y no debe superar doscientos cincuenta y seis caracteres, lo que cubre abridores de comentario de varios caracteres, marcadores de cita Markdown y patrones cortos de sangría sin permitir abusos de varios kilobytes. Prefiera enviar el cuerpo del documento en bruto con sus saltos de línea reales en lugar de unir todo en una línea cuando desee prefijos multilínea verdaderos. Envíe un cuerpo JSON con dos campos de cadena obligatorios: text (alias input, value, string, s, content y body) y prefix (alias pre, head, marker y bullet). El valor text debe ser no vacío tras recortar espacios y no superar cien mil caracteres para que una sola petición no agote la memoria del Worker o del navegador con pegados enormes. En caso de éxito la respuesta repite input como la cadena original enviada, text como la cadena de trabajo recortada, prefix como el marcador efectivo, line_count como el número de segmentos prefijados, lines como un array ordenado de cadenas de línea completamente prefijadas, prefixed como esas líneas unidas con LF, y message como un resumen breve en inglés que indica cuántas líneas se prefijaron y con qué marcador. La validación fallida—text ausente, valor no cadena, carga excesiva, contenido vacío tras el recorte, prefix ausente o no cadena, o prefix demasiado largo—devuelve invalid_input y nunca se cobra. El precio es un $0.002 fijo por petición exitosa con unidad item. Al integrar, afirme sobre prefixed o lines para el listado completo, sobre line_count para el total, y trate invalid_input como un error del cliente en envíos de formulario en blanco, no como un evento de facturación.
Consejos prácticos, límites y cuándo usar esta herramienta
Las comprobaciones de ida y vuelta para pruebas son sencillas: alimente tres líneas cortas separadas por LF con prefix "// " y espere line_count tres y cada entrada de lines empezando por ese marcador; envíe deliberadamente cadena vacía o espacios en text para confirmar invalid_input y el mensaje que pide una cadena no vacía. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene barata la validación de formularios y las pruebas negativas de CI.