Wie schalte ich die Mausunterstützung in vim um?

9

Ich habe in letzter Zeit viel an meinem Laptop gearbeitet und klicke versehentlich beim Tippen. Ich weiß, dass ich set mouse=ameine entfernen kann .vimrc, aber manchmal benutze ich gerne die Maus.

Was kann ich tun, um eine Umschaltfunktion zum Umschalten der Mausunterstützung zu erstellen?

zephyrthenoble
quelle
1
Warum nicht verwenden mouse=nv, damit es im Einfügemodus nicht aktiviert wird?
Patrick
Dies mag zu meinem Anwendungsfall passen, aber ich habe wirklich nach einer Funktion gesucht, um sie umzuschalten.
Zephyrthenoble

Antworten:

10

Sie können den Wert einer Option abrufen, indem Sie ihren Namen mit einem &vorangestellten Wert verwenden . Eine einfache Umschaltfunktion für die mouseOption wäre also:

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

Dies schaltet zwischen "keine Maus" und "Maus in allen Modi" um. Sie können es über verwenden:call ToggleMouse()

PS: Verwenden Sie so etwas nicht für boolesche Optionen, da diese :set option!zum Invertieren verwendet werden können.

crater2150
quelle
6

Fügen Sie den folgenden Code in die .vimrcDatei ein.

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