Idź na początek linii bez otwierania nowej linii w VI

229

Od wieków używam SHIFTOi SHIFT$przechodzę na początek i koniec linii w vi.

SHIFTOJest to jednak więcej w przypadku otwierania nowej linii nad kursorem.

Czy jest jakieś polecenie, które poprowadzi Cię na początek linii?

rix
źródło
9
Oprócz poniższych odpowiedzi wpisz: pomóż ruchom lewo-prawo w Vimie, aby uzyskać mnóstwo informacji.
ngm
dobra książka dla vima: ćwiczenie w vimie. ^ 0
陈思秀

Odpowiedzi:

426

Możesz użyć ^lub 0(Zero) w trybie normalnym, aby przejść na początek linii.

^przesuwa kursor do pierwszego niepustego znaku linii
0zawsze przenosi kursor do „pierwszej kolumny”

Możesz także użyć Shiftido przejścia i przejścia do trybu wstawiania.

Xavier T.
źródło
5
Również Shift + A i Shift + I przechodzą odpowiednio na koniec i początek wiersza, a także przełączają się na Wstaw model
bibstha
7
Dla mnie naciskanie ^zwykle nie jest tak łatwe jak naciskanie 0i wkolejno.
DXDXY
33

Prosty 0zabierze Cię na początek linii.

:help 0 po więcej informacji

Fredrik Pihl
źródło
25

Wypróbuj to rozwiązanie ściągawki Vi / Vim dla wielu problemów.

W trybie normalnym:
0- [zero] do początku wiersza, pierwsza kolumna.
$- do końca linii

ciekawyMonkey
źródło
12

Możesz użyć 0lub, ^aby przejść do początku linii.
I może użyć Shift+, Iaby przejść do początku i przejść do trybu edycji ( Wstaw ).

a8m
źródło
Odpowiedź jest w większości prawidłowa, ale jest małe zastrzeżenie. Shift+Ilub ^przeniesie kursor na początek tekstu w linii. Jeśli linia ma ntabulatory na początku, przesunie kursor do n*tabstop + 1tej kolumny. Podczas gdy 0przesuwa kursor do pierwszej kolumny linii.
narendra-choudhary
10

Istnieje inny sposób:

|

To jest „rura” - symbol znajdujący się pod backspace w układzie ANSI .

Vim quickref ( :help quickref) opisuje to jako:

N      |      to column N (default: 1)

Co z owiniętymi liniami?

Jeśli masz włączone zawijanie linii 0i |nie będzie Cię już prowadzić do początku linii ekranu. W takim przypadku użyj:

g0

Ponownie, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)
Andrij Drozdyuk
źródło
Teraz widzę, dlaczego to działa. Dzięki. Zastanawiałem się. Myślę, że jest lepiej niż 0ponieważ |i $są na tym samym kluczu.
WesternGun
7

Wpisz „^”. I zdobądź dobry samouczek „Vi” :)

Skippy Fastol
źródło
6

Przesuń kursor na początek lub koniec w trybie wstawiania

  • I - Przesuwa kursor do pierwszego niepustego znaku w bieżącym wierszu i włącza tryb wstawiania.
  • A - Przesuwa kursor do ostatniego znaku w bieżącym wierszu i włącza tryb wstawiania.

Tutaj Ijest równoważna ^+ i. Podobnie Ajest równoważne z $+ a.

Po prostu przesuń kursor na początek lub koniec

  • ^ - Przesuwa kursor do pierwszego niepustego znaku w bieżącym wierszu
  • 0 - Przesuwa kursor do pierwszego znaku w bieżącym wierszu
  • $ - Przesuwa kursor do ostatniego znaku w bieżącym wierszu
rashok
źródło
5

Właśnie znalazłem 0 (zero) i shift + 0 działa na vimie.

brian_wang
źródło
5
shift+0to )jest następne zdanie
mihai,
Shift+0jest lepszy, ^pokazuje postać i to denerwujące. Dzięki
calbertts,
1

0 Przenosi Cię na początek linii

Shift 0 Prowadzi cię do końca linii

Sagar Jain
źródło
Shift-0 (')') nie prowadzi do początku linii
Boris Churzin
@Devenv: To prawda! 0 woli
Sagar Jain
1
Shift-0 („)”) to „zdanie do przodu”, a nie „koniec linii” (to miałem na myśli)
Boris Churzin