Como desativar o suporte do mouse no terminal?

3

Estou fazendo esta pergunta enquanto uso o xfce4-terminal, mas estou interessado em uma solução geral: existe uma maneira de parar um emulador de terminal que anuncia o suporte a mouse em consoles? Eu preciso de mouse-select e copy-paste muito mais freqüente que eu preciso de suporte do mouse no vim ou em qualquer lugar.

    
por Ivan Voras 02.03.2015 / 14:03

2 respostas

10

Você pode manter pressionada a tecla Shift para usar a seleção normal do mouse enquanto rastreamento do mouse xterm estiver ativado. Isso funciona em todos os emuladores de terminal que eu conheço ( xterm , vte (como xfce-terminal ) ou rxvt -based).

Em vim especificamente, mouse normalmente não está habilitado por padrão nos terminais. Portanto, provavelmente há um set mouse=a em algum lugar em você ~/.vimrc ou seu sistema fornecido pelo sistema operacional vimrc. Você sempre pode adicionar:

set mouse=

para o seu ~/.vimrc para desativá-lo. Ou:

if !has("gui_running")
  set mouse=
endif

para evitar desabilitá-lo para as versões da GUI de vim .

O suporte a mouse é (mais ou menos) anunciado no banco de dados terminfo com o recurso kmous . Agora, nem todos os aplicativos dependem disso para decidir ativar ou não o rastreamento do mouse.

Você pode redefinir a entrada do seu terminal (em um banco de dados terminfo local) para remover esse recurso:

infocmp -1x | grep -v kmous= | TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo

Para aplicativos que usam ncurses , basta definir o recurso XM definido pelo usuário (não documentado em terminfo(5) , mas mencionado em curs_caps(5) e curs_mouse(3) ) como vazio corda. Isso não impede que o aplicativo manipule eventos do mouse se eles forem enviados pelo terminal, mas isso impede que o aplicativo envie a sequência que entra no modo de rastreamento do mouse. Então você pode combinar os dois com:

infocmp -1x |
  sed '/kmous=/d;/XM=/d;$s/$/XM=,/' |
  TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo
    
por 02.03.2015 / 15:38
0

Adicione as duas linhas seguintes no final de / etc / vim / vimrc:

set mouse=
set ttymouse=
    
por 04.12.2018 / 19:59