Lubię korzystać z funkcji virtualedit = all Vima, ale lubię też możliwość klikania za końcem linii i kierowania kursora bezpośrednio na koniec linii (zamiast do dokładnej pozycji, którą kliknąłem). Czy istnieje wtyczka lub coś, co może sprawić, że położenie kursora Vima po kliknięciu myszą będzie działało bardziej inteligentnie? Najlepiej byłoby, gdyby wykonał jedną z następujących czynności:
- Ignoruj preferencje virtualedit po kliknięciu myszą: Jeśli kliknięcie nastąpiło po ostatnim znaku w linii, Vim umieści kursor na końcu linii, niezależnie od tego, czy virtualedit jest włączony.
- Zachowanie zależne od trybu kliknięcia myszą: W trybie normalnym kliknięcie myszką po zakończeniu linii powoduje przeskok kursora do ostatniego znaku; w trybie wstawiania kursor jest umieszczony pod myszą.
- Zachowanie w stylu MS-Word (preferabale): Kursor przeskakuje do końca linii jednym kliknięciem lub do pozycji virtualedit po dwukrotnym kliknięciu
Wiem, że mogłem po prostu przejść z virtualedit-all do virtualedit-block, ale wolę virtualedit = wszystko do wszystkiego oprócz zachowania kliknięcia myszą. (W rzeczywistości lubię nawet ustawiać kursor na środku znaku tabulacji za pomocą kliknięcia myszą, więc tak naprawdę jest to po prostu zachowanie klikania po ostatnim znaku w linii).
PS Proszę, żadnych komentarzy ani odpowiedzi sugerujących, że po prostu uczę się nie używać myszy. Używanie myszy jest jednym z powodów, dla których przestawiłem się z Vima na gVim, ponieważ szczerze mówiąc, czasami jest to niezwykle wygodne, nawet jeśli twoją podstawową metodą poruszania się w pliku jest tylko klawiatura.
EDYCJA: Dodano pomysł zależny od trybu.
źródło
nnoremap <silent> <2-LeftMouse> <LeftMouse>i
. Z jakiegoś powodu „podwójne kliknięcie, aby przejść do trybu wstawiania” wydaje mi się logiczne. Idealnie chciałbym to zrobić tylko wtedy, gdy kursor znajdzie się poza końcem linii i zachowaj standardowe zachowanie w przeciwnym razie, co powinno być dość łatwe w użyciucol('$')
igetpos
, ale na razie pozostawię to bez zmian . Dzięki jeszcze raz!