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.


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])

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.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.