¿Es posible evitar el kill-ringalmacenamiento 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-ringmenudo 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-ringy 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-newagregar 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-saveetc. Si tiene comandos que se agregan al anillo de matar sin llamar,kill-newentonces no funcionará, por supuesto.Un problema es que cualquier comando puede modificar el,
kill-ringpor 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