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.
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.
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 .
OP chce skakać w trybie edycji, a nie w trybie poleceń, więc te klawisze będą dosłownie wprowadzać 0i $.
slhck 19.04.13
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.
Odpowiedzi:
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
: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.
źródło
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 .
źródło
użyj 0 i $, aby przejść na początek i koniec linii. Odwiedź tę stronę: http://alvinalexander.com/linux/vi-vim-editor-end-of-line .
źródło
0
i$
.Jako dodatek do odpowiedzi Chrisa możesz także uzyskać nawigację po słowie (za pomocą
Option+arrow
klawiszy), po prostu dodając te cztery wiersze:Zauważ, że
o
małe litery są małe, aby nie wyjść zinsert
trybu operacji. Możesz również zmienić wielkie literyO
w oryginalnej odpowiedzi, aby uzyskać ten sam efekt.źródło
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.
źródło
Przejdź do Terminal -> Preferencje -> Profile -> Klawiatura i dodaj:
Klawisz: ↖ Działanie: \ 033OH
Klawisz: ↗ Działanie: \ 033OF
źródło