En Vim puede presionar .para repetir el último cambio, incluida la inserción de texto.
Mientras que en Emacs C-x zsolo repite el último comando. Soy consciente de que las macros se pueden usar aquí, pero con mayor frecuencia me doy cuenta de que necesito volver a insertar el mismo texto demasiado tarde. Cuando necesito volver a insertarlo solo una vez más , definir una macro no tiene sentido.
P: ¿Hay alguna forma de repetir la inserción de texto dentro de Emacs?
text-editing
ooi
fuente
fuente

C-f, búsqueda, etc.) Si eso tiene sentido ...C-spacemover el cursorM-wpara copiar) y luegoC-ypegar tantas veces como sea necesario.Respuestas:
dot-modees un "modo menor para repetir la escritura o los comandos" y puede hacer lo que necesita. Básicamente solo repite las últimas inserciones / eliminaciones que haces. Es bastante similar a.en Vi (m).fuente
dot-modehace y cómo proporciona la funcionalidad que OP está tratando de obtener?Puede usar
kmacro-edit-lossage(C-x C-k l) para eso: le permite ver sus últimas 300 pulsaciones de teclas (incluidas las inserciones simples) y editarlas como una macro.Para un uso simple, simplemente ubique el comienzo de la inserción que desea repetir, elimine todo el texto de "Macro:" hasta ese punto y presione
C-c C-c. Ahora tiene una macro que puede usar para realizar las mismas acciones, como si no se olvidara de grabarla en primer lugar.Lamentablemente, esto falla si las últimas 300 pulsaciones de teclas incluyen clics del mouse.
Editar: el siguiente código lo cambia para que solo se mantengan las teclas después del último evento del mouse.
fuente
edmacro-fix-menu-commands. Toma un argumento opcional que puede ignorar los eventos del mouse. Pero no sé lo suficiente sobre el sistema de consejos para que funcione.Creo que la
dabbrev-expandfunción podría hacer el truco. Supongamos que ya ha escrito algunas palabras: emacs, emoción, emoji, ... La próxima vez que escriba una palabra que comience por 'em', puede presionarM-/y emacs le propondrá que inserte una de las palabras ya insertadas comenzando por 'em'. Sigue golpeandoM-/y emacs te mostrará 'emoji', luego 'emoción, luego ...También puede echar un vistazo a repeat-complex-command . El ejemplo popular es: desea repetir el comando
query-replaceen muchos buffers diferentes utilizando siempre los mismos argumentos, reemplace "pitt" por "patt".Lo ejecutas una vez, vas a una ventana diferente y escribes
C-x ESC ESCpara ejecutarlo nuevamente.Y para terminar, ¿puedo sugerir repetir inserción ? Este archivo el le ayudará a realizar la inserción, utilizando algún tipo de lógica. Es más como ", repite la última inserción, pero para cada iteración, los argumentos cambiarán.
Este ejemplo se puede encontrar en el archivo el:
Espero que le ayudará.
fuente
repeat(que menciona el OP), no es realmente útil para las inserciones de texto.Repeat-insertdebe pensarse antes de insertar el texto, como una macro. ¡Perodabbrev-expandes una buena idea!