Jak przeskoczyć na początek lub koniec linii w vim + OS X

17

W terminalu mogę to zrobić, naciskając shift + home i shift + end, ale wydaje się, że to nie działa w vimie. Klawisze Home i End przewijają tylko okno terminala. Chciałbym przejść do trybu edycji.

JtR
źródło
4
W trybie komend można znaleźć na Vim Cheat Sheet (0 i $): fprintf.net/vimCheatSheet.html . Jednak nie wiem o trybie edycji.
Gnoupi,

Odpowiedzi:

13

Ta odpowiedź zakłada, że ​​używasz vima w oknie terminala .

Domyślne wiązania Home i End różnią się nieco od oczekiwań programu na podstawie zwykłego ustawienia TERM (tj. Wariantu xterm). Jeśli chcesz pozostać przy domyślnych powiązaniach (i musisz użyć wariantów Shifted w Terminalu ), możesz spróbować umieścić coś takiego .vimrc:

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

W przeciwnym razie możesz spróbować dostosować kody wysyłane przez terminal podczas korzystania z opcji Początek i Koniec (nawet jeśli nie jest to możliwe). Wyszukiwanie prawdopodobnie ujawniłoby niektóre miejsca, które opisują, jak to zrobić ( tutaj jest jedno ). Podstawową ideą jest to, że chcesz, aby Terminal wysyłał ESC [1 ~ zamiast ESC [H dla Home i ESC [4 ~ zamiast ESC [F dla End (lub Shift-Home / Shift-End, jeśli chcesz zachować Home / Koniec dostępu do przewijania). Opisałbym ten proces bardziej szczegółowo, ale mam tylko 10.4 i wiem, że Terminal został bardzo zmieniony w wersji 10.5 i nowszych.

Chris Johnsen
źródło
8

Dzięki iTerm i Vimowi możesz użyć fn + strzałek w prawo i w lewo w trybie wstawiania, aby przejść do początku lub końca linii. Z Terminal.app używasz Shift + strzałki .

dziennik
źródło
1

Jako dodatek do odpowiedzi Chrisa możesz także uzyskać nawigację po słowie (za pomocą Option+arrowklawiszy), po prostu dodając te cztery wiersze:

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

Zauważ, że omałe litery są małe, aby nie wyjść z inserttrybu operacji. Możesz również zmienić wielkie litery Ow oryginalnej odpowiedzi, aby uzyskać ten sam efekt.

Maciej Sz
źródło
0

W MacVimie możesz użyć polecenia „Strzałka w lewo” i „Strzałka w prawo”, aby przejść do początku i końca linii w trybie edycji.

Dominik
źródło
Wygląda na to, że JtR używa vima w Terminal.app zamiast MacVim (co bardzo poleciłbym, a także osobiście).
Matrix Mole,
0

Przejdź do Terminal -> Preferencje -> Profile -> Klawiatura i dodaj:

Klawisz: ↖ Działanie: \ 033OH

Klawisz: ↗ Działanie: \ 033OF

Alfredo Cardigliano
źródło