Como alternar o suporte do mouse no vim?

9

Ultimamente, tenho trabalhado muito no meu laptop e clico acidentalmente enquanto digito. Eu sei que poderia remover set mouse=ano meu .vimrc, mas às vezes gosto de usar o mouse.

O que posso fazer para criar uma função de alternância para alternar o suporte do mouse?

zephyrthenoble
fonte
1
Por que não usar mouse=nv, para que não seja ativado durante o modo de inserção?
Patrick
Isso pode se encaixar no meu caso de uso, mas eu estava realmente procurando por uma função para alterná-la.
Zephyrthenoble 22/09/14

Respostas:

10

Você pode recuperar o valor de uma opção usando seu nome com um &anexo. Portanto, uma função de alternância simples para a mouseopção seria:

function! ToggleMouse()
    " check if mouse is enabled
    if &mouse == 'a'
        " disable mouse
        set mouse=
    else
        " enable mouse everywhere
        set mouse=a
    endif
endfunc

Isso alterna entre "sem mouse" e "mouse em todos os modos". Você pode usá-lo via:call ToggleMouse()

PS: não use algo parecido com isto para opções que são booleanas, pois elas :set option!podem ser usadas para invertê-las.

crater2150
fonte
7

Adicione o código abaixo no .vimrcarquivo.

  map <F3> <ESC>:exec &mouse!=""? "set mouse=" : "set mouse=nv"<CR>
khangpa
fonte