En Vim puede presionar .
para repetir el último cambio, incluida la inserción de texto.
Mientras que en Emacs C-x
z
solo 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-space
mover el cursorM-w
para copiar) y luegoC-y
pegar tantas veces como sea necesario.Respuestas:
dot-mode
es 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-mode
hace 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-expand
funció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-replace
en 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 ESC
para 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-insert
debe pensarse antes de insertar el texto, como una macro. ¡Perodabbrev-expand
es una buena idea!