Wiem, że mogę użyć:
- Home w trybie wstawiania
- Esc+, iaby wyjść z trybu wstawiania i wprowadzić go ponownie, skutecznie przechodząc do początku wiersza.
Ale żadne mnie nie satysfakcjonuje. W pierwszym przypadku muszę przechylić głowę, żeby uderzyć Home, bo nie mogę trafić na ślepo. W drugim przypadku moja lewa ręka musi opuścić rząd domu, aby trafić Esc, co też jest denerwujące.
jakieś pomysły?
Odpowiedzi:
Ctrl+ Ow trybie wstawiania przełącza cię w tryb poleceń tylko na jedno naciśnięcie klawisza. Dlatego Ctrl+ Owtedy Shift+ Ipowinno osiągnąć to, czego szukasz.
źródło
Ctrl-o
po nim0
(nieco bardziej wydajnie niżCtrl-o
po nimShift-I
), ponieważ automatycznie powrócisz do trybu wstawiania. W niektórych przypadkach,Ctrl-o
po którym następuje^
może być lepsze (aby przejść do pierwszego niebiałego znaku w linii).<C-O>
nie jest tym samym<C-[>
lub<Esc>
chociaż mogą wyglądać podobnie. Różnica polega na tym, że edycja ze zwykłym klawiszem Escape + <coś, co spowoduje ponowne przejście do trybu wstawiania> pozostawia dwie zmiany, a <CO> pozostawia jedną. Może to pomóc w zachowaniu czytelniejszej historii cofania i ponownym użyciu tej wkładki do wklejenia. Niektórzy vimowie będą argumentować, że powinieneś zwracać uwagę na takie rzeczy.Możesz wejść w tryb wstawiania używając
I
(duże i).Umieści kursor na początku linii.
Podobnie możesz użyć,
A
aby dodać coś na końcu linii.Chociaż tak naprawdę nie rozwiązuje problemu przesuwania się już w trybie wstawiania.
Właśnie sprawdziłem pomoc dotyczącą trybu wstawiania, w trybie wstawiania nie ma kombinacji klawiszy do poruszania się na początku wiersza.
Inny pomysł: zmiana odwzorowania nowego polecenia tylko w trybie wstawiania
inoremap <C-i> <Home>
źródło
Mam Ctrl + A i Ctrl + E zmapowane odpowiednio na początek i koniec linii. Jest to zgodne z zachowaniem większości linii poleceń basha. U mnie działa dobrze.
źródło
<C-e>
kopiuje / zapisuje znak pod kursorem (<C-y>
nad kursorem),<C-a>
wstawia wszystko, co jest w twoim.-Rejestrze (rejestr kropkowy). Ten rejestr zostaje zapełniony tym, co właśnie wpisałeś, kiedy wychodzisz z trybu wstawiania (nawet gdy używasz Ctrl-c (do którego z wielu powodów nie powinieneś się przyzwyczajać)).Jeśli używasz terminala MacOS, przejdź do Preferencje ...> Ustawienia> Klawiatura i przypisz klawisz zakończenia do Ctrl-O $ (jest wyświetlany jako \ 017 $), a następnie użyj fn + left, aby zasymulować klawisz zakończenia. Zrób to samo dla klucza domowego. Sekwencja ucieczki \ 033 [H działa również dla domu.
źródło
Najlepszym sposobem działania jest zmiana przypisania akcji do innego klawisza (zobacz Jak zmienić przypisanie <Ctrl-Home>, aby przejść do pierwszej linii w pliku? Pomysłów)
Zastanawiałbym się, jak często używam tej „funkcji” i odpowiednio odwzorowuję ją na naciśnięcie klawisza
źródło
Możesz przypisać klucze do tego:
ref: http://vim.wikia.com/wiki/Quick_command_in_insert_mode
źródło
Skrótem, który zadziałał dla mnie (zarówno pamięć mięśniowa, jak i intuicyjność) jest mapowanie
__
(co jest podwójnym_
) do „wstaw na początku bieżącej linii”.Racjonalne uzasadnienie:
_
już idzie na początek linii_
nie koliduje z żadnymi ruchami (jesteś już na początku linii)vimscript:
Jest to tak skomplikowane, ponieważ łatwa alternatywa
nnoremap __ _I
powoduje, że vim opóźnia naciśnięcie,_
aby odróżnić od_
i__
.źródło
źródło
używam tego polecenia, aby przejść do końca wiersza bez wychodzenia z trybu wstawiania
Podobnie, aby przejść do początku wiersza:
źródło