Limpar seleção secundária sem usar o mouse

8

Ocasionalmente, sem querer, eu de alguma forma misturo teclas ou mouse para obter uma seleção secundária. Eu nunca uso a seleção secundária, então eu sempre gostaria de me livrar dela.

Como posso limpar a seleção secundária sem usar o mouse?

As ligações padrão para definir a seleção secundária são interceptadas pelo meu gerenciador de janelas, portanto, não funcione no emacs. Também não quero reconectar esses comandos para outros eventos do mouse: eu uso o mouse apenas para algumas coisas, eles funcionam bem e não quero alterá-los. Não posso simplesmente executar comandos como mouse-start-secundário: quando eu tento isso, o emacs me informa que eles precisam estar vinculados a um evento.

Croad Langshan
fonte
11
Isso funciona (delete-overlay secondary-mouse-overlay):?
glucas

Respostas:

7

Você deve poder limpar a seleção secundária avaliando:

(delete-overlay mouse-secondary-overlay)

Se você nunca deseja obter a seleção secundária, acredito que você pode simplesmente desvincular os eventos padrão do 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
fonte
Eu recebo: valor dos símbolos como variável é nula: secundário-rato-sobreposição
Croad Langshan
Desculpe - eu entendi o nome errado. Corrigindo agora.
glucas
Não consigo testar e marcar como resposta aceita, pois não sei como obter uma seleção secundária! Quando eu marcar algo com a seleção secundária, é sempre por acidente, então não faço ideia de como faço. GNOME Shell parece interceptar todas as combinações de mouse eu tento ... (embora eu não tenho certeza do que M-down-rato-1 meios)
Croad Langshan
Eu posso pressionar Alt e o botão esquerdo do mouse para selecionar o texto com a seleção secundária, mas não faço ideia da interação do Gnome.
glucas
Outra maneira de obter a seleção secundária é com Alt + clique com o botão direito do mouse. Isso definirá a seleção secundária do ponto para onde você clicou. Também existem ligações para Alt + clique duplo ou triplo nos vários botões. Suspeito que seu gerente de janelas roube algumas dessas ligações, mas não todas.
glucas
3

Você diz que nunca deseja usar a seleção secundária. Nesse caso, basta vincular as chaves vinculadas aos comandos de seleção secundária por padrão aos comandos que você achar mais úteis. Ou desatá-los, vinculando-os a nil. Estas são as chaves:

  • M-mouse-1( mouse-start-secondary, por padrão)
  • M-drag-mouse-1( mouse-set-secondary, por padrão)
  • M-down-mouse-1( mouse-drag-secondary, por padrão)
  • M-mouse-2( mouse-yank-secondary, por padrão)
  • M-mouse-3( mouse-secondary-save-then-kill, por padrão)

Por exemplo:

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

Por outro lado, se o problema é que o gerenciador de janelas rouba essas chaves, considere vincular chaves diferentes a esses comandos. Por exemplo, adicione modificador Controla cada uma das chaves padrão: C-M-mouse-1etc.

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

E se o problema é que você não deseja usar o mouse para manipular a seleção secundária, use o teclado . A Biblioteca second-sel.elpode ajudar com essa e outras maneiras de usar a seleção secundária.

Por exemplo, você pode se livrar da seleção secundária interativamente a qualquer momento dessa maneira, se ligar secondary-dwima C-M-y(por exemplo):

  1. C-SPC - para criar uma região ativa vazia.
  2. C-1 C-M-y - para mover a seleção secundária para a região (que está vazia).

Esta é a sequência de comandos do doc secondary-dwim, que second-sel.elliga por padrão 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.
Desenhou
fonte