W przypadku niektórych formatów tekstu podział linii ma znaczenie.
Na przykład często używam Vima do pisania dokumentów MediaWiki, w których nie można po prostu nigdzie położyć linii (w przeciwieństwie do Markdown). Więc jestem zmuszony pisać wiersze z wieloma znakami.
Może to prowadzić do długich (ponad 200 znaków) lub nawet bardzo długich (ponad 1000 znaków) linii. W Vimie jest to bardzo niewygodne. Jednym z przykładów jest to, że jeśli chcę edytować coś w środku 1000-wierszowej linii, muszę przesunąć kursor 500 razy.
Można to zrobić nieco szybciej za pomocą w
lub /
, ale nadal jest to niewygodne.
Czy są lepsze sposoby na poradzenie sobie z tym? Lepsze klawisze ruchu? Jakieś „fałszywe zawijanie” (tekst zachowuje się tak, jakby nie tw=80
, ale nie ma go \n
w pliku), czy coś innego?
źródło
Odpowiedzi:
Możesz użyć
g
serii poleceń, aby przejść do granic widocznego obszaru ekranu. Na przykład g$przesuwa się do prawej krawędzi ekranu (która niekoniecznie jest końcem linii). gjprzesuwa kursor o jedną linię w dół, tak jak pojawia się na ekranie (niekoniecznie jedna linia logiczna w dół).Być może możesz ponownie powiązać klawisze strzałek:
Lub niektórzy ludzie również bezpośrednio wiążą ponownie ki j:
W trybie wstawiania możesz użyć:
Lub:
Ponadto, jeśli użyjesz
:set wrap
, Vim zawinie linie, abyś mógł zobaczyć całą linię. Możesz także użyć,set showsbreak=+
aby pokazać a,+
aby wskazać, że Vim robi zawijanie.Aby przejść do określonych pozycji kolumn, możesz użyć |polecenia. Na przykład 200|przejdzie do pozycji kolumny 200.
źródło
g5j
jak zwykle zeskoczyć 5.5gj
g5j
,g5
widać Pierwszy, który właśnie przechodzi do następnego5
przed zastosowaniemj
. Dlatego nie może robić tego, co5gj
robi.Vim obsługuje miękkie owijanie, tylko
set wrap
po to, aby je włączyć, i będzie owijał długie linie wychodzące poza widoczny ekran. Możesz używaćgj
&,gk
aby poruszać się odpowiednio w górę / w dół po takich zawijanych liniach.źródło
Kiedy mam do czynienia z bardzo długimi liniami, największa bolączka dotyczy różnych długości linii. Oznacza to, że poruszanie się w górę lub w dół w pobliżu końców linii przewija okno bardzo daleko w lewo lub w prawo.
Można tego uniknąć poprzez ustawienie
virtualedit=all
, które pozwala przenieść kursor w przestrzeń długo po zakończeniu linii.źródło
Jak powiedzieli inni, możesz użyć g+ czegoś, aby się poruszać. Jednak w przypadku wyjątkowo długich linii gjwielokrotne naciskanie w celu przejścia w dół nie jest ergonomiczne. Mam w sobie następujące
.vimrc
ułatwienia:Na komputerze Mac pozwala mi to używać j, k, $, 0 i ^ w liniach wyświetlacza, przytrzymując klawisz polecenia. W innych systemach zamiast
D
możesz spróbowaćM
lubA
Alt lubC
Control.źródło