Desabilitar totalmente o mouse no console vim

13

Eu vi desativar completamente o mouse no console vim no Stack Overflow. Parecia exatamente o que eu queria, mas o problema estava relacionado ao Cygwin, então o título era impróprio.

Quero saber como desativar completamente todas as interações do mouse no vim no console. Não quero rolar, selecionar, clicar ou olhar o mouse para ter algum efeito no vim.

Eu gosto de ter o mouse no console, mas não quando estou usando o vim. Isso é possível?

Eu tenho um laptop com o ubuntu instalado e, quando digito, ocasionalmente o mouse do touch pad decide clicar ou arrastar aleatoriamente entre algumas coordenadas aleatórias na tela, mesmo quando tento ao máximo não tocar na coisa maldita. Isso tem o efeito de eu digitar código nos lugares errados o tempo todo, e está ficando muito antigo porque às vezes introduz bugs irreversíveis sutis no meu código.

Consegui me livrar da rolagem e da seleção visual usando os comandos abaixo no meu .vimrc, mas ele ainda realocará o cursor quando clicar.

" disable mouse interactions "
set mouse=nicr
map <ScrollWheelUp> <nop>
map <S-ScrollWheelUp> <nop>
map <C-ScrollWheelUp> <nop>
map <ScrollWheelDown> <nop>
map <S-ScrollWheelDown> <nop>
map <C-ScrollWheelDown> <nop>
map <ScrollWheelLeft> <nop>
map <S-ScrollWheelLeft> <nop>
map <C-ScrollWheelLeft> <nop>
map <ScrollWheelRight> <nop>
map <S-ScrollWheelRight> <nop>
map <C-ScrollWheelRight> <nop>

O que mais eu preciso fazer?

PS eu tentei set mouse=, mas isso parece reativar visual select ...

James M. Lay
fonte
6
set mouse=desativa efetivamente todas as interações do mouse com o Vim , mas não com o emulador de terminal. Você tem certeza de que "visual select" é do Vim?
romainl
Isso pode dever-se ao carregamento de uma configuração central _depois _ ao carregar a configuração /etc/vimrc. Veja minha resposta aqui: unix.stackexchange.com/a/506723/194822
Holger Böhnke

Respostas:

17

Você deve adicionar as duas linhas a seguir no final de / etc / vim / vimrc:

set mouse=
set ttymouse=
Georgi Stoyanov
fonte
Eu não sabia sobre o ttymouse, obrigado!
James M. Lay
11
+1 em ttymousetodos os sites mencionados, mousemas ttymouseera o que estava faltando. Obrigado !
KaKi87 21/04
2

Isso pode funcionar se você colocá-lo no final do seu arquivo .vimrc

set mouse=c

Provavelmente não é o Vim que recebe a entrada do mouse, mas o seu emulador de terminal. Para desativar o suporte do mouse no seu terminal, isso pode ajudar.

Gustav Blomqvist
fonte
2
Por que ce não completamente em branco?
Rich Rich
1

Essa é apenas uma solução parcial, na melhor das hipóteses, mas você pode desativar globalmente o mouse / touchpad enquanto o vim estiver sendo executado xinputem um script de shell:

xinput set-prop $ID "Device Enabled" 0

E depois

xinput set-prop $ID "Device Enabled" 1

Quando você estiver pronto para que o touchpad funcione novamente.

Use xinput --listpara obter o ID do seu dispositivo apontador.

ctag
fonte
Isso pode combinar bem com os eventos autocommand FocusGainede FocusLost, embora pareça haver algum desafio em encontrar uma configuração de terminal + Vim onde esses eventos possam ser detectados.
8bittree