To coś mnie martwiło od dłuższego czasu, ale nigdy nie miałem o co pytać. Powiedz, że tekst w buforze wygląda następująco:
Hello
World
Jeśli ustawię kursor gdzieś w linii 2 i zrobię to yk, mój kursor zakończy się na linii 1. Wydaje się, że to oznacza, że operator plus ruch również przesuwa kursor. Jeśli jednak zacznę od linii 1 i zrobię to yj, mój kursor pozostanie w tym samym miejscu. Ta sama niespójność zdarza się przy wielu kluczach.
Moves Doesn't move
gg G
h l
{ }
( )
T t
F f
? /
Więc co z tym zachowaniem? Czy jest to oczekiwane i dobrze udokumentowane? Czy jest na to jakaś nazwa? Czy można to zmienić?
Zasadniczo wydaje się, że „ruchy do tyłu, ruchy do przodu nie”, ale czy istnieje sposób, aby definitywnie stwierdzić, czy operator + ruch poruszy kursorem, czy nie?
cursor-motions
DJMcMayhem
źródło
źródło
y
to operator, a nie polecenie.Odpowiedzi:
Od
:h operator
Dzieje się tak, że kursor jest przenoszony na początek obiektu tekstowego. Włączenie trybu wizualnego sprawi, że będzie to bardziej widoczne. Możesz pomyśleć o tym, jak tekst jest zaznaczany przed operacją. Użyj,
vby
aby zobaczyć, co mam na myśli.źródło