2011-11-05 10 views
14

Domyślnie po przewinięciu do końca wyświetlanego bufora w oknie vim można przewijać, aż ostatnia linia pliku znajdzie się w pierwszym wierszu obszaru wyświetlania vim. Wszystkie pozostałe linie obszaru wyświetlania są oznaczone znakami "~". Czy istnieje konfiguracja, która zatrzymuje przewijanie, gdy ostatnia linia pliku znajduje się w dolnej części okna vim?vim - Zatrzymaj przewijanie po pierwszym pliku kończącym się

Edycja: Bardziej precyzyjnie to zachowanie dotyczy tylko przewijania za pomocą kółka myszy lub nawigacji PgDown, które wypełniają ekran nieistniejącymi znakami linii. I kursor przesuwa się linia po linii za pomocą klawisza strzałki w dół, zatrzymuje się poprawnie w ostatniej linii pliku.

+0

Zastanawiam się, czy może uda Ci się dostać VIM działa jak chciałeś? – JohnTortugo

Odpowiedz

10

Wystarczy oob wyrównać bieżącą linię do dolnej części okna.

E.g.Goob

Nie niespodziewanie tam to rodzina powiązanych wniosków płukania:

  • ooj dół
  • ook się
  • zt góry
  • zb dolny
  • zz środkowego (w środku)
  • zz środkowy (środkowy)

Dla komplementu eteness:

  • zl/zL pionowy PAN w prawo
  • zH/zH pionowy PAN w lewo

również spojrzeć scrolloff

użyć

:set scrolloff=2 

zawsze utrzymuje minimalną bufor 2 linii przed i po bieżącym wierszu kursora. To sprawia, że ​​ruchy panoramiczne są niemal magiczne. Spędzam wszystkie bazy kodu przeglądania dni użyciu nic ale

  • stronicowania Cd/Cu, hjkl i relokacji częste panoramowanie (w większości) oooo
  • nawigowania }/{
  • ctags dla wszystkich innych potrzeb związanych z nawigacją
+0

Tak Mam już ustawienie przewijania. Ale nie ma efektu z PgDown lub przewijaniem kółka myszy. – greydet

+0

Czy istnieje sposób na zmianę odwzorowania PgDown lub kółka myszy w dół, aby użyć kombinacji opartej na poleceniu "z", aby automatycznie zatrzymać je w ostatniej linii pliku? – greydet

+0

W rzeczywistości możliwe jest przemapowanie przycisku przewijania i klawisza w dół myszy w kierunku polecenia "}". Dziękuję za powiadomienie mnie o tym poleceniu nawigacyjnym. – greydet

1

Nie sądzę. Ale nawet gdyby tak było, jak by się zachował, gdyby w twoim pliku było mniej linii niż na ekranie? Musiałbyś jakoś wyświetlić te nieistniejące linie.

Trzeba mieć jakiś sposób, aby powiedzieć vim, aby wyświetlić te linie czy górna część pliku jest w widoku, ale nie pozwalają im na wyświetlanie jeśli górna nie jest w polu widzenia.

+3

Oczywiście, jeśli plik nie zawiera wystarczającej liczby linii do wypełnienia ekranu, nie ma problemu z nieistniejącymi liniami. Po prostu nie chcę, aby PgDown lub kółko myszy poruszały się poniżej końca pliku – greydet

1

Nie, Twój opis jest niepoprawny.

Podczas przewijania linii po linii strzałkami lub za pomocą klawiszy j/k Vim zatrzymuje się u dołu ekranu. Oznacza to, że nie będzie wypełniać ekranu z nieistniejącymi liniami.

Gdy jeden przechodzi w dół strona po stronie z PgDown/PgUp, to może uzyskać nieistniejące linie na ekranie. Nie można tego uniknąć, ponieważ klucze PgDown/PgUp nie przeskakują w dół linia po linii.

+1

Tak właśnie tego chcę uniknąć: mając nieistniejące linie na ekranie, używając PgDown lub kółka myszy! – greydet

+0

@greydet - Jak byś chciał, aby Vim zachowywał się podczas PgDown na ostatniej stronie? – Rook

0

Właśnie znalazłem ten (http://vimrc-dissection.blogspot.se/2009/02/fixing-pageup-and-pagedown.html):

map <silent> <PageUp> 1000<C-U> 
map <silent> <PageDown> 1000<C-D> 
imap <silent> <PageUp> <C-O>1000<C-U> 
imap <silent> <PageDown> <C-O>1000<C-D> 

który wydaje się działać na klawiszach stronie.I po pewnym nieudanych poszukiwaniach dotyczących przewijania, wpadłem na to:

map <ScrollWheelUp> H5k 
map <ScrollWheelDown> L5j 

Tracisz linię, ale nie jest to bardzo przydatne podczas przewijania tak? Alternatywnie, można również zrobić:

map <ScrollWheelUp> <C-U> 
map <ScrollWheelDown> <C-D> 

Jeśli nie przeszkadza bardzo szybkie przewijanie ...

Powiązane problemy