Wiem, jak ogólnie poruszać się w trybie poleceń, w szczególności przeskakując do linii itp. Ale jakie jest polecenie, aby przejść do końca linii, na której aktualnie jestem?
vim
editor
keyboard-shortcuts
vi
salt.racer
źródło
źródło
vimtutor
jest świetny. Prawdopodobnie nie wiedzieli o tym?Odpowiedzi:
Tylko klawisz $ (znak dolara) . Możesz użyć, Aaby przejść na koniec linii i przejść do trybu edycji (Dołącz). Aby przejść do ostatniego niepustego znaku, możesz nacisnąć, ga następnie _klawisze.
Przeciwieństwem Ajest I(tryb Insert na początku linii), a na marginesie. Naciśnięcie tylko ^spowoduje umieszczenie kursora na pierwszym znaku wiersza innym niż białe znaki.
źródło
g_
g_
odmiana, ponieważ nie zawiera pustych znakówJak wiele osób powiedziało:
ale również:
źródło
|
Polecenie potoku może jednak liczyć, np. 3 | aby przejść do trzeciej kolumny.g _ przechodzi do ostatniej spacji.
g $ przechodzi na koniec linii ekranu (gdy linia buforowa jest owinięta przez wiele linii ekranu)
źródło
b
przechodzi na początek poprzedniego słowa, które wcale nie jest tym samym. Jest to mniej więcej odpowiednik$ge
._
ig_
do visual / yanking, podobnie jak kopiuję / usuwam$
znak nowej linii (LN).g_
to jedyny sposób, w jaki udało mi się dotrzeć do faktycznego końca linii.$
przechodzi na koniec linii, nawet jeśli jest zapakowany dla mnie. Nie znam ustawień dostosowujących jego zachowanie. Być może został ponownie mapowany przez twój .vimrcg$
?Główne pytanie - koniec linii
$ przechodzi na koniec linii, pozostaje w trybie poleceń
A przechodzi na koniec wiersza, przechodzi w tryb wstawiania
I odwrotnie - początek wiersza (technicznie pierwszy znak spacji )
^ przechodzi na początek linii, pozostaje w trybie poleceń
I (wielkie litery i) przechodzi na początek linii, przełącza do trybu wstawiania
Dalej - początek linii (technicznie pierwsza kolumna niezależnie od białych znaków )
0 (zero) przechodzi na początek linii, pozostaje w trybie poleceń
0i (zero, a następnie małe litery i) przechodzi na początek linii, przełącza się do trybu wstawiania
Dla tych, którzy zaczynają się uczyć vi, jest to dobre wprowadzenie do vi, wymieniając obok siebie polecenia vi do typowych ruchów kursora i klawiszy skrótu edytora graficznego Windows.
edytor vi dla użytkowników systemu Windows
źródło
I
jest nie,0
ale^
, ponieważ obaI
i^
przechodzą do pierwszego niebiałego znaku linii, ale0
przechodzą do kolumny zero (jak sama nazwa wskazuje).0
? (przejdź do pierwszego znaku (= kolumna 0) wiersza i przejdź do trybu wstawiania)0i
. :-)Jeśli bieżąca linia zawija się wokół widocznego ekranu do następnej linii, możesz użyć g $, aby dostać się do końca linii ekranu .
źródło
gw
igq
są polecenia, które sformatować tekst. (patrz:h gw
i:h gq
) Najprawdopodobniej to zrobiłeśgw{motion}
i zmieniłeś trochę tekstu, aby linie ekranu odpowiadały rzeczywistym wierszom.Znak dolara: $
źródło
W wielu przypadkach, gdy znajdujemy się w ciągu, otacza nas podwójny cudzysłów lub podczas pisania instrukcji nie chcemy naciskać klawisza Escape i przechodzić do końca tego wiersza za pomocą klawisza strzałki i nacisnąć średnik (
;
), aby zakończyć linia. Napisz następujący wiersz w pliku vimrc :Co mówi linia? Mapuje Ctrl + l na szereg poleceń. Jest to równoważne z jednoczesnym naciśnięciem Esc(tryb poleceń), $(koniec linii), a(dołącz).
źródło
vim
z pewnością pozwala ci robić znacznie więcej w znacznie krótszym czasie dzięki takim rzeczom. @razorxpress, drobna korekta byłabyimap <C-l> <Esc>A
, co sprawia, że Ctrl + l jest równoważne naciśnięciuEsc
(wyjście z trybu wstawiania), a następnieA
(dołącz do końca linii).inoremap <C-l> <C-o>A
Zaletą klawisza „End” jest to, że działa zarówno w trybie normalnym, jak i wstawiania.
„$” działa tylko w trybie normalnym / komend, ale działa również w klasycznym edytorze vi (dobrze wiedzieć, kiedy vim nie jest dostępny).
źródło
Zwróć także uwagę na różnicę między linią (lub może fizyczną) a linią ekranową . Linia kończy się znakiem końca linii („\ n”). Linia ekranu to cokolwiek, co dzieje się jako jeden wiersz znaków w twoim terminalu lub na ekranie. Oba się rozdzielają, jeśli masz fizyczne linie dłuższe niż szerokość ekranu, co jest bardzo częste podczas pisania wiadomości e-mail i tym podobnych.
To rozróżnienie pojawia się również w poleceniach końca linii.
Jeśli zawsze wolisz to drugie zachowanie, możesz ponownie przypisać klucze w ten sposób:
źródło
g_
jest ostatnim niebiałym odstępem linii fizycznej . Co powiesz na linię ekranu?Naciśnij, Aaby przejść do trybu edycji, zaczynając od końca linii.
źródło
Lub istnieje oczywista odpowiedź: użyj Endklawisza, aby przejść do końca linii.
źródło
Nie widzę skrótu dla Macbooka do używania vima w standardowym terminalu. Mam nadzieję, że to komuś pomoże. Dla użytkowników systemu macOS (testowane na Macbooku Pro 2018):
W przypadku dwóch ostatnich poleceń należy kiedyś nacisnąć dwukrotnie.
źródło
Prawdopodobnie niezwiązane, ale jeśli chcesz rozpocząć nową linię po bieżącej linii, możesz użyć o w dowolnym miejscu linii.
źródło
Najłatwiejszą opcją byłoby wpisanie $. Jeśli pracujesz z blokami tekstu, możesz docenić to polecenie {i }aby odpowiednio przesunąć akapit do tyłu i do przodu.
źródło
Byłem przyzwyczajony do Home / End, który doprowadził mnie do początku i końca linii w trybie wstawiania (od użycia w Windows i myślę, że Linux), którego Mac nie obsługuje. Jest to szczególnie denerwujące, ponieważ kiedy używam vima na zdalnym systemie, nie mogę tego łatwo zrobić. Po kilku bolesnych próbach i błędach wymyśliłem te
.vimrc
wiersze, które robią to samo, ale związałem się z Ctrl-A na początku linii i Ctrl-D na końcu linii. (Z jakiegoś powodu Ctrl-E, jak sądzę, jest zarezerwowany lub przynajmniej nie mogłem znaleźć sposobu, aby go powiązać.) Ciesz się.Tutaj jest dobra tabela kodów znaków kontrolnych ASCII dla innych:
http://www.physics.udel.edu/~watson/scen103/ascii.html
Możesz także zrobić kombinację klawiszy Ctrl-V + Ctrl-, ale to nie wkleja się tak dobrze w takich miejscach.
źródło