Respuestas:
Puede agregar un prefijo con M-x string-rectangle
, que está vinculado a C-x r t
. Esto es parte de una serie de comandos que opera en selecciones rectangulares ; éste inserta texto en cada línea del rectángulo.
Comience configurando la marca al comienzo de la primera línea y mueva el cursor al primer carácter de la última línea que desea prefijar:
*Hello
There
▮I am some code
Luego use C-x r t
, ingrese su prefijo ( I said
) y presione RET
. Esto agrega el texto a cada línea en el rectángulo:
I said Hello
I said There
I said I am some code
Si no alinea el cursor en la misma columna que su marca, sobrescribirá esa parte del rectángulo:
*Hello
There
I am▮ some code
con el mismo comando resulta en:
I said o
I said e
I said some code
M-x string-insert-rectangle
. Es muy similar, pero se string-insert-rectangle
inserta al comienzo de cada línea de la selección, mientras que string-rectangle
reemplaza , por lo que con este último debe ser más preciso sobre su selección si no desea sobrescribir nada.
Puede usar el modo de cursores múltiples para colocar un cursor en cada línea. Luego, cualquier texto que escriba se insertará en cada línea.
Comenzaría con el punto al comienzo del código:
▮Hello
There
I am some code
Luego golpea C->dos veces. (Esta es la combinación de teclas sugerida; debe configurarla usted mismo). Esto crea dos cursores adicionales en las siguientes dos líneas:
▮Hello
▮There
▮I am some code
Luego escribe I said
. El texto se agregará en cada línea:
I said ▮Hello
I said ▮There
I said ▮I am some code
Finalmente presione RETpara salir del modo de cursores múltiples y dejar el punto en el último cursor:
I said Hello
I said There
I said ▮I am some code
Aquí hay un video que muestra cómo funciona.
Otra opción es usar macros, que pueden manejar más tareas que las selecciones rectangulares o los cursores múltiples, incluso si es un poco más complicado para este caso específico.
Coloque el cursor al comienzo de la primera línea y presione F3para comenzar a grabar, inserte el texto, mueva el cursor al comienzo de la siguiente línea y presione F4para detener la grabación. Ahora presione F4nuevamente para repetir la macro, C-2 F4repetirla dos veces o C-0 F4repetirla hasta que se encuentre un error (como quedarse sin líneas).
Podrías instalar evil y hacerlo de varias formas similares a las de vi : prefiero la selección de bloques visuales usando Ctrl+ Vpara marcar cada línea y luego Shift+ Ipara insertar y luego escribir el texto que deseas insertar y finalmente presionar ESCpara salir del modo de inserción y el el texto se antepondrá a cada línea. Esto es muy similar a las selecciones de rectángulos de emacs pero algunas pulsaciones de teclas menos.
Esto es muy similar a la respuesta de artagnon, pero replace-regexp
no está vinculado a ninguna clave.
Por lo tanto, en realidad uso el query-replace-regexp
que está vinculado por defecto C-M-%
y luego lo reemplazo ^
con el prefijo dado I said
y luego escribo !
para reemplazar todo sin preguntar más.
Si ha cua-mode
habilitado, entonces:
I said
como texto a insertarPrefiero la cua-mode
forma de trabajar, en comparación con el rectángulo estándar de Emacs donde el equivalente sería:
I said
RET para insertar textoEl cua-mode
guarda dos pulsaciones de teclas en comparación con el rectángulo estándar de Emacs.
Pero para mí, la ventaja adicional de cua-mode es que puedo agregar texto al rectángulo (personalmente no sé cómo agregar texto con el rectángulo estándar de Emacs). Con cua-mode, solo se RETpresiona una tecla, se inserta antes de I said
.