Borrar selección secundaria sin usar el mouse

8

Ocasionalmente, sin querer, de alguna manera aplasto teclas o mouse para obtener una selección secundaria. Nunca uso la selección secundaria, así que siempre me gustaría deshacerme de ella.

¿Cómo puedo borrar la selección secundaria sin usar el mouse?

Mi administrador de ventanas intercepta los enlaces predeterminados para configurar la selección secundaria, por lo que no funciona en emacs. Realmente tampoco quiero volver a vincular estos comandos a otros eventos del mouse: uso mi mouse solo por algunas cosas, funcionan bien y no quiero cambiarlos. No puedo simplemente ejecutar comandos como mouse-start-secundario: cuando intento eso, emacs me informa que tienen que estar vinculados a un evento.

Croad Langshan
fuente
1
¿Funciona esto (delete-overlay secondary-mouse-overlay)?
glucas

Respuestas:

7

Debería poder borrar la selección secundaria evaluando:

(delete-overlay mouse-secondary-overlay)

Si nunca desea obtener la selección secundaria, creo que puede desvincular los eventos predeterminados del mouse:

(global-unset-key [M-mouse-1])
(global-unset-key [M-drag-mouse-1])
(global-unset-key [M-down-mouse-1])
(global-unset-key [M-mouse-3])
(global-unset-key [M-mouse-2])
glucas
fuente
Obtengo: el valor de Symbols como variable es nulo: secundario-mouse-overlay
Croad Langshan
Lo siento, me he equivocado de nombre. Arreglando ahora.
glucas
¡No puedo probar esto y marcarlo como respuesta aceptada ya que no sé cómo obtener una selección secundaria! Cuando marco algo con una selección secundaria, siempre es por accidente, así que no tengo idea de cómo lo hago. Gnome shell parece interceptar todas las combinaciones de mouse que intento ... (aunque no estoy seguro de lo que significa M-down-mouse-1)
Croad Langshan
Puedo mantener presionada la tecla Alt y el botón izquierdo del mouse para seleccionar texto con la selección secundaria, pero no tengo idea de la interacción de Gnome.
glucas
Otra forma de obtener la selección secundaria es con Alt + clic con el botón derecho del mouse. Eso establecerá la selección secundaria desde el punto hasta donde haya hecho clic. También hay enlaces para Alt + doble o triple clic en los diversos botones. Sospecho que su administrador de ventanas roba algunos pero no todos esos enlaces.
glucas
3

Dices que nunca quieres usar la selección secundaria. En ese caso, solo vincula las teclas vinculadas a los comandos de selección secundaria de forma predeterminada a los comandos que consideres más útiles. O desatarlos, uniéndolos a nil. Estas son esas claves:

  • M-mouse-1( mouse-start-secondarypor defecto)
  • M-drag-mouse-1( mouse-set-secondarypor defecto)
  • M-down-mouse-1( mouse-drag-secondarypor defecto)
  • M-mouse-2( mouse-yank-secondarypor defecto)
  • M-mouse-3( mouse-secondary-save-then-killpor defecto)

Por ejemplo:

(global-set-key [M-mouse-1] 'a-handy-mouse-command)

Por otro lado, si el problema es que su administrador de ventanas roba esas claves, entonces considere vincular diferentes teclas a esos comandos. Por ejemplo, agregue un modificador Controla cada una de las teclas predeterminadas: C-M-mouse-1etc.

(global-set-key [C-M-mouse-1] 'mouse-start-secondary)

Y si el problema es que no desea usar el mouse para manipular la selección secundaria, puede usar el teclado . La biblioteca second-sel.elpuede ayudar con esta y otras formas de usar la selección secundaria.

Por ejemplo, puede deshacerse de la selección secundaria de forma interactiva en cualquier momento de esta manera, si se une secondary-dwima C-M-y(por ejemplo):

  1. C-SPC - para crear una región activa vacía.
  2. C-1 C-M-y - para mover la selección secundaria a la región (que está vacía).

Esta es la cadena de comando doc secondary-dwim, que se second-sel.elvincula de forma predeterminada a C-M-y:

C-M-y runs the command secondary-dwim, which is an interactive
compiled Lisp function in `second-sel.el'.

It is bound to C-M-y, menu-bar edit secondary-dwim.

(secondary-dwim ARG)

Do-What-I-Mean with the secondary selection.
Prefix arg:

 None: Yank secondary.
 Zero: Select secondary as region.
 > 0:  Move secondary to region.
 < 0:  Swap region and secondary.

Details:

No prefix arg: Yank the secondary selection at point.  Move point to
the end of the inserted text.  Leave mark where it was.

Zero arg: Select the secondary selection and pop to its buffer.

Non-zero arg: Move the secondary selection to this buffer's region.

Negative arg: Also go to where the secondary selection was and select
it as the region.  That is, swap the region and the secondary
selection.
Dibujó
fuente