No Vim, você pode pressionar .
para repetir a última alteração, incluindo a inserção de texto.
Enquanto no Emacs, C-x
z
apenas repete o último comando. Estou ciente de que as macros podem ser usadas aqui, mas mais do que muitas vezes percebo que preciso reinserir o mesmo texto tarde demais. Quando preciso inseri-lo apenas mais uma vez , definir uma macro é inútil.
P: Existe uma maneira de repetir a inserção de texto dentro do Emacs?
text-editing
ooi
fonte
fonte
C-f
, pesquisa, etc.)? Se isso faz algum sentido ...C-space
movo o cursorM-w
para copiar) eC-y
colo quantas vezes forem necessárias.Respostas:
dot-mode
é um "modo secundário para repetir digitação ou comandos" e pode fazer o que você precisa. Basicamente, apenas repete as últimas inserções / exclusões que você faz. É bem parecido com o.
Vi (m).fonte
dot-mode
faz e como fornece a funcionalidade que o OP está tentando obter?Você pode usar
kmacro-edit-lossage
(C-x C-k l
) para isso: permite visualizar as 300 últimas teclas digitadas (incluindo inserções simples) e editá-las como uma macro.Para uso simples, basta localizar o início da inserção que deseja repetir, excluir todo o texto de "Macro:" para esse ponto e pressionar
C-c C-c
. Agora você tem uma macro que pode ser usada para executar as mesmas ações, como se não tivesse esquecido de registrá-la.Infelizmente, isso falhará se os últimos 300 pressionamentos de tecla incluírem cliques do mouse.
Editar: O código a seguir altera para que apenas as chaves após o último evento do mouse sejam mantidas.
fonte
edmacro-fix-menu-commands
. É preciso um argumento opcional que pode ignorar os eventos do mouse. Mas não sei o suficiente sobre o sistema de aconselhamento para fazê-lo funcionar.Eu acho que a
dabbrev-expand
função poderia fazer o truque. Vamos supor que você já digitou algumas palavras: emacs, emoção, emoji, ... Da próxima vez que digitar uma palavra iniciada por 'em', você poderá pressionarM-/
e o emacs proporá que você insira uma das palavras já inseridas começando por 'em'. Continue batendoM-/
e o emacs mostrará 'emoji', depois 'emoção, então ...Você também pode dar uma olhada em repeat-complex-command . O exemplo popular é: você deseja repetir o comando
query-replace
em muitos buffers diferentes sempre usando os mesmos argumentos, substitua “pitt” por “patt”.Você o executa uma vez, acessa uma janela diferente e digita
C-x ESC ESC
para executá-lo novamente.E para finalizar, posso sugerir a inserção repetida ? Esse arquivo irá ajudá-lo a inserir, usando algum tipo de lógica. É mais como ", repita a última inserção, mas para cada iteração, os argumentos serão alterados.
Este exemplo pode ser encontrado no arquivo el :
Espero que ajude.
fonte
repeat
(que o OP menciona), não é realmente útil para inserções de texto.Repeat-insert
precisa ser pensado antes de inserir o texto, como uma macro. Masdabbrev-expand
é uma boa ideia!