Ich finde das Scrollen einer ganzen Seite oft zu verwirrend, eine halbe Seite zu viel, aber eine Viertelseite ist genau richtig. Ich mache es derzeit nur durch Gedrückthalten der Pfeiltasten.
Wie scrolle ich einfach 25% der Seite runter und rauf?
Ich finde das Scrollen einer ganzen Seite oft zu verwirrend, eine halbe Seite zu viel, aber eine Viertelseite ist genau richtig. Ich mache es derzeit nur durch Gedrückthalten der Pfeiltasten.
Wie scrolle ich einfach 25% der Seite runter und rauf?
Antworten:
Vielleicht ctrldund ctrlukönnte das sein, wonach Sie suchen. Standardmäßig wird die Hälfte des Bildschirms verschoben.
Von :h CTRL-D
:
Fenster im Puffer nach unten scrollen. Die Anzahl der Zeilen ergibt sich aus der Option 'Bildlauf' (Standard: halber Bildschirm).
Wenn [count] angegeben ist, setzen Sie zuerst die Option 'scroll' auf [count].
Das heißt, wenn Sie zum ersten Mal in einem Fenster scrollen möchten, können Sie tun, XXctrldwo XX 25% der Anzahl der Zeilen in Ihrem Fenster ist. Wenn scroll
der Wert XX eingestellt ist, können Sie mit ctrldund ctrlu25% des Bildschirms verschieben.
Ich denke auch, dass :h scrolling
das für Sie interessant sein könnte.
Bearbeiten
Und hier ist eine andere Lösung mit einer Funktion und einigen Zuordnungen, die Sie zu Ihrer hinzufügen können .vimrc
:
function! ScrollQuarter(move)
let height=winheight(0)
if a:move == 'up'
let key="\<C-Y>"
else
let key="\<C-E>"
endif
execute 'normal! ' . height/4 . key
endfunction
nnoremap <silent> <up> :call ScrollQuarter('up')<CR>
nnoremap <silent> <down> :call ScrollQuarter('down')<CR>
Die Funktion erhält die Höhe des aktuellen Fensters und rollt den Bildschirm entsprechend seines Parameters um ein Viertel der Höhe nach oben oder unten.
Die Zuordnungen rufen die Funktion auf, wobei die erste nach oben und die zweite nach unten geht.
Natürlich können Sie <up>
und <down>
zu einigen anderen Tasten wechseln , wenn Sie das Standardverhalten Ihrer Pfeiltasten beibehalten möchten.
ctrl-E
und ctrl-Y
in den Mappings zu verwenden, weil a). Sie haben dann separate Verknüpfungen für das Scrollen von 1/2 und 1/4 Seite. b). Das Verhalten von ctrl-U
/ ctrl-D
ist konsistent und hängt nicht davon ab, ob Sie das Mapping zuvor verwendet haben.
let key="^U"
der Teil zwischen dem doppelten Anführungszeichen den Schlüsselcode von darstellen soll ctrl+u
. Wenn Sie also die Funktion in vim kopiert haben, positionieren Sie den Cursor auf den ersten Treffer ci"
mit doppelten Anführungszeichen , um den Inhalt der Anführungszeichen zu ändern, und klicken Sie ctrl+v
anschließend ctrl+u
auf denselben in der Zeile let key="^D"
.
let key="^Y"
statt let key="^U"
. Dies führt zu demselben Verhalten, ohne jedoch die 'scroll'
Einstellung zu beeinflussen.
Sie können verwendet werden ctrleund ctrlydie Seite um eine Zeile nach oben und unten zu bewegen.
Wenn Sie möchten, dass +/- 25% verschoben werden, können Sie dies verwenden 20ctrle, um 20 Zeilen nach unten zu verschieben.
Hier ist auch eine gut erläuterte Frage, die Ihrer ähnlich ist: /programming/3458689/how-to-move-screen-without-moving-cursor-invim
Ich habe den statox- Ansatz variiert , damit er konsistenter über die Zeilenumbrüche rollt. Wenn Sie einen Viertelschritt möchten, ändern Sie 0,618 zurück auf 0,25 oder was auch immer.
function! ScrollGolden(move)
let height=winheight(0)
if a:move == 'up'
let prep='L'
" let key="^Y"
let key='gk'
let post='zb'
elseif a:move == 'down'
let prep='H'
" let key="^E"
let key='gj'
let post='zt'
endif
execute 'normal! ' . prep . float2nr(round(height*0.618)) . key . post
endfunction
nnoremap <silent> <BS> :call ScrollGolden('up')<CR>
nnoremap <silent> <Space> :call ScrollGolden('down')<CR>
Wenn Sie eine gute allgemeine Antwort und keine exakten 25% wünschen, können Sie die normale Zeilenanzahl auf einer Seite durch Teilen durch 25 ausrechnen und einige Systemzuordnungen festlegen. Wenn Sie zum Beispiel normalerweise ungefähr 100 Zeilen gleichzeitig auf einem Bildschirm haben, sind 25% davon 25 Zeilen, sodass Sie eine Tastenzuordnung für etwas wie Ihr Kapital J und K festlegen können, um schnell 25 Zeilen auf und ab zu bewegen
noremap J 25j
noremap K 25k
Wenn Sie nur zur Viertelmarke der gesamten Datei springen möchten, geben Sie im normalen Modus Folgendes ein:
25%
noremap J 25j
den Wert fest codieren, 25
navigiert Ihre Zuordnung tatsächlich zu 50% in den neuen Fenstern. Über Ihre zweite Option :25%
wusste ich nicht, dass es sie gibt, aber nach meinen Tests scheint sie den Cursor auf eine Position zu setzen, die auf der ersten Zeile basiert: Wenn ich einen Puffer von 100 Zeilen habe und 25% vorwärts :25%
gehen möchte, bringt mich die Eingabe in Zeile 25, egal wo mein Cursor war. Könnten Sie bitte auch das Hilfethema einfügen, in dem diese Funktion beschrieben wird. Ich kann sie nicht im Dokument finden.
:h N%