Deaktivieren Sie die Maus in Console Vim vollständig

13

Ich habe gesehen , wie die Maus in Console Vim bei Stack Overflow vollständig deaktiviert wurde . Es klang genau so, wie ich es wollte, aber dort hing das Problem mit Cygwin zusammen, sodass der Titel eine falsche Bezeichnung war.

Ich möchte wissen, wie alle Mausinteraktionen in vim auf der Konsole vollständig deaktiviert werden können . Ich möchte nicht, dass das Scrollen, Auswählen, Klicken oder anderweitige Betrachten der Maus einen Effekt in vim hat.

Ich mag es, die Maus in der Konsole zu haben, nur nicht, wenn ich vim benutze. Ist das möglich?

Ich habe einen Laptop mit Ubuntu installiert und wenn ich tippe, beschließt die Touchpad-Maus gelegentlich, zufällig zwischen zufälligen Koordinaten auf dem Bildschirm zu klicken oder zu ziehen, selbst wenn ich mein Bestes versuche, das verdammte Ding nicht zu berühren. Dies hat zur Folge, dass ich ständig Code an den falschen Stellen eingebe und es wird sehr alt, weil es manchmal subtile irreversible Fehler in meinen Code einführt.

Ich konnte das Scrollen und die visuelle Auswahl mit den folgenden Befehlen in meinem entfernen .vimrc, aber der Cursor wird beim Klicken immer noch verschoben.

" 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>

Was muss ich noch tun?

PS Ich habe es versucht set mouse=, aber das scheint die visuelle Auswahl wieder zu aktivieren ...

James M. Lay
quelle
6
set mouse=Deaktiviert effektiv jede Mausinteraktion mit Vim , jedoch nicht mit Ihrem Terminalemulator. Sind Sie sicher, dass "Visual Select" Vims ist?
Romainl
Dies kann daran liegen, dass eine zentrale Konfiguration geladen wird, nachdem die Konfiguration geladen wurde /etc/vimrc. Siehe meine Antwort hier: unix.stackexchange.com/a/506723/194822
Holger Böhnke

Antworten:

17

Sie sollten die folgenden zwei Zeilen am Ende von / etc / vim / vimrc hinzufügen:

set mouse=
set ttymouse=
Georgi Stoyanov
quelle
Ich wusste nichts über ttymouse, danke!
James M. Lay
1
+1 für ttymouse, alle Websites erwähnten, mouseaber es ttymousewar die, die mir fehlte. Vielen Dank !
KaKi87
2

Dies könnte funktionieren, wenn Sie es am Ende Ihrer .vimrc setzen

set mouse=c

Es ist wahrscheinlich nicht Vim, der die Mauseingabe übernimmt, sondern Ihr Terminal-Emulator. Dies kann hilfreich sein, um die Mausunterstützung auf Ihrem Terminal zu deaktivieren .

Gustav Blomqvist
quelle
2
Warum cund nicht ganz leer?
Rich
1

Dies ist bestenfalls eine Teillösung, aber Sie können die Maus / das Touchpad global deaktivieren, während vim xinputin einem Shell-Skript ausgeführt wird:

xinput set-prop $ID "Device Enabled" 0

Und dann

xinput set-prop $ID "Device Enabled" 1

Wenn Sie bereit sind, das Touchpad wieder zum Laufen zu bringen.

Verwenden Sie xinput --listdiese Option , um die ID Ihres Zeigegeräts abzurufen.

ctag
quelle
Dies lässt sich gut mit den Ereignissen FocusGainedund FocusLostautocommand kombinieren , obwohl es anscheinend schwierig ist, ein Terminal + Vim-Setup zu finden, in dem diese Ereignisse erkannt werden können.
8bittree