W vim, jeśli wejdę i wyjdę z trybu edycji bez robienia czegokolwiek, karetka kończy się jedną postacią po lewej stronie. A jeśli wejdę i wyjdę z trybu dołączania, kursor przesunie się do przodu, a następnie do tyłu.
W takich przypadkach można skonfigurować vima tak, aby zostawił daszek w spokoju?
Idealnie po prostu chcę zawsze wchodzić w tryb dołączania, ale bez przesuwania kursora, gdy wchodzę lub wychodzę z tego trybu.
(Obecnie zazwyczaj używam trybu wstawiania, ponieważ nie psuje mojej pozycji karetki przy wejściu. To znaczy, z wyjątkiem sytuacji, gdy muszę dołączyć się do końca linii, w którym to przypadku przysięgam na vim za zachowanie w tak archaiczny sposób , naciśnij klawisz Esc i przejdź do trybu dołączania).
i
luba
bez o tym myśleć, a może być nawets
,S
,ci"
, itd. Zamiast ograniczaći
ia
.Odpowiedzi:
To pytanie jest często zadawane przez nowych użytkowników vi / Vim, a odpowiedź jest taka, że w trybie normalnym kursor jest zawsze „na” znaku, ale w trybie wstawiania kursor jest zawsze „między” dwoma znakami (pamiętaj, że koniec -of-line to znak). Tak naprawdę nie widać tego również w konsoli Vima, ale w GUI zauważysz, że kursor staje się paskiem między dwoma znakami po przejściu do trybu wstawiania, zamiast bloku nad znakiem, gdy jesteś w trybie normalnym.
Więc to, co widzisz, niekoniecznie musi przesuwać kursor o jedną postać do tyłu, gdy opuścisz tryb wstawiania, ale po prostu zmienia postać. Jedynym bezpiecznym kierunkiem ruchu jest w lewo (lub w tył). Tak więc masz więcej niż jeden sposób wejścia w tryb wstawiania:
Niektórzy starali się powstrzymać ten „ruch”, który im się nie podoba, ale nieuchronnie koliduje z wtyczkami i innymi skryptami Vima, które chcą uruchomić w przyszłości.
Moją sugestią jest przyzwyczajenie się do używania poleceń „a” i „i” (oraz „A” i „I”) w odpowiednich okolicznościach.
Przydatne są również polecenia „o” i „O”. Widzieć:
Edycja: Jeśli nadal jesteś zdecydowany zmienić to zachowanie, wypróbuj następującą wskazówkę: Unikaj ucieczki przed przesunięciem kursora o jeden znak w lewo
źródło
a
zamiast tegoi
.<esc>
rzeczywiście uniemożliwi<esc>
prawidłowe korzystanie z większości wtyczek , ale nadal będzie Cię drażnić, gdy będziesz używać innych standardowych funkcji, które powracają do normalnego trybu w ten sam sposób<esc>
. Nauka używania właściwego klucza w locie to rozwiązanie, które skaluje się / działa na dłuższą metę.Myślę, że przez karat rozumiesz kursor, a jeśli używasz „i”, wstawi to bezpośrednio tam, gdzie jest twój kursor, „a” (które, jak sądzę, szukasz) przesuwa kursor o jeden znak w prawo. Również shift-i (I) przejdzie na początek linii, a shift-a (A) dojdzie do końca linii.
Jeśli źle zrozumiałem twoje pytanie, przepraszam.
źródło
Ponieważ ponowne mapowanie
<ESC>
jest uważane za „ryzykowne”, po prostu łączę się z jednym z podejść do klawisza unikania unikania i mam następujące.vimrc
:Uwaga: Upewnij się, że na końcu wiersza nie ma spacji.
Prosty, ale w pełni certyfikowany jako „działa dla mnie dobrze”, ponieważ w przeciwnym razie musiałbym pisać ręcznie.
Niezależnie od tego, czy używam,
a
czyi
nadal dostaję zachowanie cofnięcia karetki, i to mnie denerwuje tak często, jak potem, a następnie następną rzeczą, którą chcę wpisać, jestd$
usunięcie do końca linii itp.źródło
Oto moje rozwiązanie:
To jest zabawne. To samo pytanie istnieje na wszystkich trzech stronach: SO, SU, Unix + Linux.
źródło