Usar Crtl + Backspace ou Ctrl + Del adiciona o texto excluído ao anel de interrupção.
Como posso impedir que isso aconteça? Não preciso enviar todos os trechos de texto para o ring kill quando ele for excluído.
Pergunta secundária: Qual é o objetivo dessa configuração padrão? :)
undo
. Palpite, no entanto.Respostas:
De acordo com a documentação:
Agora, vamos procurar o código fonte:
Em seguida, dentro da documentação para a
kill-region
função, encontramos:Agora, se você quiser ir além, esta é uma função que você pode usar para excluir sem copiar para o kill-ring:
Cortesia de ErgoEmacs
fonte
Desde o Emacs 24, sem nenhuma configuração, você pode excluir qualquer texto sem adicioná-lo ao anel de morte, selecionando-o e pressionando Backspaceou Delete. Quando a marca está ativa, essas teclas excluem a região em vez de excluir o caractere antes / depois do cursor.
Ou seja, vá para uma extremidade do texto que deseja excluir, pressione Ctrl+ Space, vá para a outra extremidade e pressione Backspace(ou Delete) para excluir a região destacada. Ou vá para uma extremidade, mantenha pressionado Shiftenquanto usa as teclas de movimento para ir para a outra extremidade e pressione Backspace.
fonte
Eu tive o mesmo problema e resolvi-o mais facilmente desta maneira:
A chamada
(backward-delete-char-untabify 1 nil)
diz ao Emacs para excluir um char (esse é o1
parâmetro) e evita copiar para o anel (esse é onil
parâmetro). Você precisa de uma função lambda (ou seja, anônima) porque está vinculando uma função com parâmetros a uma chave.fonte