Tengo el siguiente código:
Hello
There
I am some code
Y desea agregar código delante de él, como:
I said Hello
I said There
I said I am some code
Entonces, ¿cómo agregaría un prefijo a cada línea?
text-editing
editing
Luke
fuente
fuente
M-x string-insert-rectangle
. Es muy similar, pero sestring-insert-rectangle
inserta al comienzo de cada línea de la selección, mientras questring-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:
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:
Luego escribe
I said
. El texto se agregará en cada línea:Finalmente presione RETpara salir del modo de cursores múltiples y dejar el punto en el último cursor:
Aquí hay un video que muestra cómo funciona.
fuente
Personalmente, prefiero
replace-regexp
(reemplazar "^" con "dije").fuente
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).
fuente
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.
fuente
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 defectoC-M-%
y luego lo reemplazo^
con el prefijo dadoI said
y luego escribo!
para reemplazar todo sin preguntar más.fuente
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
.fuente