¿Es posible evitar el kill-ring
almacenamiento de espacios en blanco / líneas vacías? En este momento, después de hacer un par de cambios y luego ir, a browse-kill-ring
menudo veo algo como esto:
-------
-------
merchant_uuid: "some_uuid"
-------
it "creates a webhook" do
-------
-------
-------
¿Hay alguna manera de obligar a kill-ring a agregar solo contenido significativo?
helm-show-kill-ring
y parece filtrar las entradas de anillo de matar en blanco. Sin embargo, todavía puedo tirar un montón de espacios en blanco, así que +1 para la pregunta.kill-do-not-save-duplicates
, lo que impidekill-new
agregar lo mismo al anillo de matar dos veces seguidas.Respuestas:
Aquí hay un enfoque para tratar con asesinatos en blanco (es decir, solo espacios en blanco). En lugar de filtrarlos por completo, esto permitirá a lo sumo una entrada en blanco en el anillo de matar. Cada nueva muerte verificará la cabeza del anillo de la muerte y la reemplazará si está en blanco.
Tenga en cuenta que estoy usando el mecanismo de asesoramiento Emacs 24.4+ aquí para filtrar los argumentos que eventualmente se pasan a
kill-new
.El efecto es que todavía puedes matar y tirar un montón de espacios en blanco, pero si matas algo de espacio en blanco y luego matas algo más, la entrada de espacio en blanco se descartará.
fuente
kill
,kill-ring-save
etc. Si tiene comandos que se agregan al anillo de matar sin llamar,kill-new
entonces no funcionará, por supuesto.Un problema es que cualquier comando puede modificar el,
kill-ring
por lo que el único gancho lo suficientemente potente como para hacer esto es elpost-command-hook
. Esto es ineficiente, pero AFAIK es la única forma de hacerlo con rigor. Si eso te parece bien, puedes hacer esto:En aras de la eficiencia, supongo que todos los comandos se agregan al
kill-ring
, esto es probablemente seguro, pero tenga en cuenta que una función puede insertar texto en cualquier lugar que desee en elkill-ring
. Sin embargo, esto es raro, y estoy seguro de que no desea iterar sobre todo el anillo de matar en cada comando.fuente