Comment basculer le support de la souris dans vim?

9

J'ai beaucoup travaillé sur mon ordinateur portable ces derniers temps, et je clique accidentellement lors de la frappe. Je sais que je pouvais retirer set mouse=amon .vimrc, mais parfois j'aime utiliser la souris.

Que puis-je faire pour créer une fonction bascule pour basculer la prise en charge de la souris?

zephyrthenoble
la source
1
Pourquoi ne pas l'utiliser mouse=nvpour qu'il ne soit pas activé en mode insertion?
Patrick
Cela pourrait convenir à mon cas d'utilisation, mais je cherchais vraiment une fonction pour le basculer.
zephyrthenoble

Réponses:

10

Vous pouvez récupérer la valeur d'une option en utilisant son nom avec un &préfixe. Ainsi, une fonction bascule simple pour l' mouseoption serait:

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

Cela bascule entre «pas de souris» et «souris dans tous les modes». Vous pouvez l'utiliser via:call ToggleMouse()

PS: n'utilisez pas quelque chose comme ça pour les options qui sont booléennes, car celles :set option!- ci peuvent être utilisées pour les inverser.

cratère2150
la source
7

Ajoutez le code ci-dessous dans le .vimrcfichier.

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