El uso de Crtl + Retroceso o Ctrl + Supr agrega el texto eliminado al anillo de eliminación.
¿Cómo puedo evitar que esto suceda? No necesito que se envíe cada pieza de texto al anillo de eliminación cuando se elimina.
Pregunta secundaria: ¿Cuál es el propósito de esta configuración predeterminada de todos modos? :)
undo
. Sin embargo, una suposición salvaje.Respuestas:
De acuerdo con la documentación:
Ahora, examinemos el código fuente:
Luego, dentro de la documentación para la
kill-region
función encontramos:Ahora, si quieres ir más allá, esta es una función que puedes usar para eliminar sin copiar en kill-ring:
Cortesía de ErgoEmacs.
fuente
Desde Emacs 24, sin ninguna configuración, puede eliminar cualquier texto sin agregarlo al anillo de matar seleccionándolo y luego presionando Backspaceo Delete. Cuando la marca está activa, estas teclas eliminan la región en lugar de simplemente eliminar el carácter antes / después del cursor.
Es decir, muévase a un extremo del texto que desea eliminar, presione Ctrl+ Space, muévase al otro extremo y presione Backspace(o Delete) elimine la región resaltada. O muévase a un extremo, mantenga presionado Shiftmientras usa las teclas de movimiento para ir al otro extremo y presione Backspace.
fuente
Tuve el mismo problema y lo resolví más fácilmente de esta manera:
Las llamadas
(backward-delete-char-untabify 1 nil)
le dicen a Emacs que elimine hacia atrás un carácter (ese es el1
parámetro) y que se abstiene de copiar en el anillo (ese es elnil
parámetro). Necesita una función lambda (es decir, anónima) porque está vinculando una función con parámetros a una clave.fuente