Edycja: Problem z włączoną myszą vim
wydaje się być specyficzny dla gnome-terminal
(wersja 3.4.1.1-1; Używam trybu awaryjnego gnome 3). Jeśli uruchomię xterm
, obsługa myszy w vim
jest domyślnie wyłączona i mam opcję, aby ją włączyć ( :set mouse=a
czego nigdy nie robię) i wyłączyć ( :set mouse=
). W przeciwieństwie do tego, kiedy biegnę vim
na gnome-terminal
wsparcie myszy jest domyślnie włączona i nie jest możliwe, aby ją wyłączyć ( :set mouse=
nie ma wpływu). Czy brakuje rozwiązania zmieniającego emulator terminala?
Chcę całkowicie wyłączyć obsługę myszy w vim
. vim
Korzystam z wersji 2: 7.3.547-3 do gnome-terminal
wersji 3.4.1.1-1. Następujące polecenia, wykonane bezpośrednio w vimie lub dodane do mojego .vimrc
pliku, nie wyłączają obsługi myszy:
set mouse =
set mouse =""
Na podstawie przeczytania instrukcji vima i postów online, jedno lub oba z tych poleceń powinny działać. W szczególności instrukcja vim zawiera następujące informacje
'mouse' string (default "", "a" for GUI, MS-DOS and Win32)
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command-line mode
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt
Normally you would enable the mouse in all four modes with: >
:set mouse=a
When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.
Używam laptopa i za każdym razem, gdy moja ręka szczotkuje gładzik, moja pozycja kursora w vimie gwałtownie się porusza.
źródło
.vimrc
pliku w domu powinno rozwiązać problem (zrobiło to dla mnie). Nie musi zawierać niczego, może nawet być pustym plikiem./usr/share/
którym zarządza menedżer pakietów, jest złym pomysłem. Jeśli chcesz zachować niektóre opcjedefaults.vim
, skopiowałbym je~/.vimrc
.obsługa myszy jest domyślnie wyłączona, więc coś ją włącza. Prawdopodobnie przyczyną
set mouse=
niepowodzenia jest to, że działa zanim cokolwiek go włączy. Przejrzałbym resztę twojego vimrc i ewentualnie systemowy vimrc (/etc/vim/vimrc
jest to standardowa lokalizacja).W ostateczności możesz wykonać ten naprawdę brzydki hack, który spowoduje, że polecenie będzie działać jako jedna z ostatnich czynności, zanim przejmiesz kontrolę nad edytorem.
źródło
/etc/vim/vimrc
plik jest całkiem nagi (runtime! debian.vim
i warunkowyif filereadable("/etc/vim/vimrc.local") ; source /etc/vim/vimrc.local; endif
)./etc/vim/vimrc.local
Plik nie istnieje w moim systemie. Mój~/.vimrc
plik ma tylko kilka wierszy, które dodałem ręcznie.strace
Odvim
ujawnia, że sprawdza następujące lokalizacje dla plików config:/usr/share/vim/vimrc
,/etc/vim/vimrc.local
( ENOENT ) i/home/user/.vimrc
. (Dlaczego pojawia się błąd ENOENT; czyif
instrukcja nie uniemożliwia prób otwarcia tego nieistniejącego pliku?).:set mouse=
bezpośrednio w vimie, czy nie powinno to zastąpić żadnych ustawień z plików konfiguracyjnych? Dlaczego bezpośrednie wykonanie tego poleceniavim
nie wyłącza kontroli myszy?ENOENT
jak vim musi sprawdzić, czy plik istnieje. Zazwyczaj wykonuje się to przez wywołanie,stat
które zwraca,ENOENT
jeśli plik nie istnieje.xterm
i nie miałem problemu z aktywacją myszy. Mógłbym odtworzyć problem, pisząc:set mouse=a
podczasvim
uruchamianiaxterm
(i odwróć, pisząc:set mouse=
). Masz pomysł, jak rozwiązać problem zgnome-terminal
usterką? Czy powinienem zacząć nowy wątek? Dzięki.Natknąłem się na to w mojej aplikacji „Terminal” OS X na hoście Fedora Server 25. Rozwiązałem to na stałe w moim .vimrc z:
Teraz mogę przewijać do poprzedniej historii bash w przewijaniu mojego terminala za pomocą myszy.
źródło
set ttymouse=
miała dla mnie dziwne zachowanie, np. Powodowało zachowanie klawiszy strzałek, klawisz Escape, aby zmienić.Miałem prawie takie same skargi jak ty na wrażliwość nowego Vima na mysz. Używanie
set mouse=""
też mi tego nie zrobiło.Mam
set mouse=c
(bez cudzysłowów) blisko dolnej części mojego.vimrc
pliku. To zdawało się powstrzymywać Vima przed używaniem myszy, z wyjątkiem sytuacji, gdy używasz „PuTTY” do ssh in z mojego (ugh!) Komputera z systemem Windows w pracy. Muszę użyć środkowego przycisku shift do wklejenia w PuTTY.2018-03-30 Edycja: Teraz zacząłem używać:
:mouse=
(bez cudzysłowów lub czegokolwiek) na niektórych zdalnych (v CentOS 6.7) instancjach vima, aby pozbyć się niepożądanych efektów myszy.źródło
.vimrc
pliku i próbowałem uruchomić interaktywnie (:set mouse=c
), ale w moim przypadku żadne z nich nie miało żadnego efektu.Dodaj to do
.vimrc
:źródło
has("gui_running")
w środowisku terminalowym jest 0. Odpowiedź ta, w przeciwieństwie do innych, zajmuje dodatkowego wysiłku, aby tylko wyłączyć mysz w środowisku terminala, którego pytanie dotyczy kwestii, pozostawiając włączony gvim.Podczas debian stretch niektóre centralne ustawienia są ładowane po załadowaniu
/etc/vim/vimrc
i/etc/vim/vimrc.local
. Zobacz/etc/vim/vimrc
:Domyślnie ten plik
/usr/share/vim/vim80/defaults.vim
. Teraz zmienia plik centralny pod/usr/share/...
IsUstawienie
skip_defaults_vim
przez odkomentowanie powyższej linii usuwa wszystkie inne opcje ustawione przez ten plik. Aby po prostu usunąć niechciane opcje, umieść w/etc/vimrc.local
:Spowoduje to
defaults.vim
ręczne załadowanie i wyłączenie automatycznego ładowania, co daje szansę przywrócenia niepożądanych ustawień bez konieczności tworzenia.vimrc
konta dla każdego konta użytkownika.źródło
Nieco związane z pytaniem, jeśli używasz neovim (nvim), powinieneś umieścić
set mouse=
w~/.config/nvim/init.vim
pliku konfiguracyjnym.Jeśli katalog nie istnieje, utwórz go
mkdir -p ~/.config/nvim/
źródło