Poruszanie się (efektywnie) pionowo w Vimie

27

Kiedy chcę sięgnąć do określonej części słowa w Vimie (poziomo), po prostu naciskam w, b, f lub t (coś). Czy istnieje dobry sposób na zrobienie tego w pionie? Na przykład chcę dostać się do określonego słowa lub litery linii, która znajduje się poniżej lub powyżej linii, w której aktualnie się znajduję.

PS: Bez użycia: (numer linii)

janoChen
źródło

Odpowiedzi:

29

H, Mi Lprzesunie kursor odpowiednio na górę, środek i dół ekranu. Następnie możesz nacisnąć, zzaby wyśrodkować ekran na linii, na której znajduje się kursor.

Alison R.
źródło
5
I zb i zt przesuwają ekran odpowiednio na dole i na górze
Jani Hartikainen
11
  • możesz użyć strzałki w górę / w dół, aby przesunąć jedną linię
  • możesz wpisać liczbę, a następnie użyć strzałki w górę / w dół, aby przesunąć w górę / w dół o tyle wierszy
  • małe gskoki do pierwszego wiersza dokumentu
  • kapitał Gprzeskakuje do ostatniego wiersza dokumentu
  • itp.

istnieje wiele innych sposobów, vim jest bardzo elastyczny pod tym względem. Poleciłbym najpierw uzyskać ściągę vim dla podstawowych poleceń, a następnie, jak masz czas, przejrzeć dokumentację vim na ten temat.

Link do jednej ściągawkę: Ściągawka

Również:

  • /+ ciąg + (Enter)wyszukuje następne wystąpienie ciągu od kursora do końca dokumentu
  • ? - robi to samo, ale od kursora do tyłu w kierunku początku dokumentu

źródło
6

Skaczę dookoła, szukając unikalnych ciągów, do których chcę iść. W Vimie możesz to zrobić za pomocą:

/szukana fraza

Zazwyczaj przewijam do przodu i do tyłu za pomocą n i N po wpisaniu wyszukiwania.

Przewijam również za pomocą Ctrl-F i Ctrl-B, aby szybko przewijać kod. Ale najczęściej używam sztuczki wyszukiwania. Czasami możesz się zgubić, przeglądając wyniki wyszukiwania za pomocą n i N. Dobrym poleceniem do orientacji jest Ctrl-G, który wypisuje coś takiego na dole ekranu Vima:

wiersz „script.pl” 219 z 328–66% - kol. 19–23

James Thompson
źródło
+1 dla <CTRL> -F i <CTRL> -B, chociaż mam tendencję do "oszukiwania" i używania <PgUp> i <PgDown> prawie tak często!
technomalogiczny
4

spróbuj:: on motion.txt i: on-góra-dół-ruchy

Ma całą listę możliwych ruchów w górę w dół

Michał
źródło
3

Możesz także wykonywać skoki do określonej linii w dokumencie, wydając Ngg, gdzie Njest numer linii, którą chcesz przeskoczyć.

mloskot
źródło
1
masz na myśli NG...
Peter
1
Ja też używam Ngg(oba warianty działają)
soulmerge
1
Jak również:N
viraptor
2

jak wspomniano wcześniej H, M, L (jak w wysokich, środkowych, niskich) małymi literami hjkl są typowymi komendami konsoli do gry w lewo, w dół, w górę, w prawo i działają tak samo w vi (j, k działają w Gmailu, jeśli włączysz kluczowe polecenia)


źródło
1

<Ctrl>+D - na dół

<Ctrl>+U - w górę

sml
źródło
To połowa zwoju strony. Aby w pełni korzystać z przewijać strony <c-f>i<c-b>
Al.G.
1

Oprócz zwykłych ruchów w pionie korzystam ze zmodyfikowanej wersji /programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines . Zwykle poruszam się za pomocą klawiszy strzałek, a nie hjkl (długi czas użytkownik innych edytorów, zanim znalazłem Vima, zbyt przyzwyczajony do zmiany strzałek / Home / end / PgUp / PgDn, nawet po ponad 5 latach wyłącznego korzystania z Vima).

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Trzymając Ctrl, mogę wizualnie przejść do początku / końca lub góra / dół wyświetlanych wierszy. Dla mnie jest to co najmniej wydajniejsze niż alternatywy.

Prawie zapomniałem: musiałem zmodyfikować .Xdefault, aby działał w konkretnie urxvt, ale jest to prawdopodobnie problem nie na temat (z odpowiedziami w Google).

Daniel Andersson
źródło