回答:
たぶんctrld、ctrluあなたが探しているものかもしれません。デフォルトでは、画面の半分を移動します。
から:h CTRL-D
:
ウィンドウをバッファ内で下にスクロールします。行数は「スクロール」オプションから取得されます(デフォルト:画面の半分)。
[count]が指定されている場合、最初に 'scroll'オプションを[count]に設定します。
これは、ウィンドウ内で最初にスクロールするときにXXctrld、XXがウィンドウ内の行数の25%である場合に実行できることを意味します。scroll
XX値に設定するctrldと、ctrluを使用して画面の25%を移動できます。
また、それ:h scrolling
はあなたにとって興味深いかもしれません。
編集
そして、ここに追加する関数といくつかのマッピングを持つ別のソリューションがあります.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>
この関数は現在のウィンドウの高さを取得し、それに応じてそのパラメーターに応じて画面を高さの4分の1だけ上下にスクロールします。
マッピングは関数を呼び出します。最初の関数は上に移動し、2番目の関数は下に移動します。
もちろん、あなたが変更することができます<up>
し、<down>
あなたがあなたの矢印キーのデフォルトの動作を維持したい場合は、いくつかの他のキーへ。
ctrl-E
およびctrl-Y
マッピングで、)ので。その後、1/2ページと1/4ページの両方のスクロール用の個別のショートカットがあります。b)。ctrl-U
/ の動作ctrl-D
は一貫しており、以前にマッピングを使用したことがあるかどうかに依存しません。
let key="^U"
二重引用符で囲まれた部分がのキーコードを表すための行を参照してくださいctrl+u
。したがって、vimで関数をコピーした場合は、最初の二重引用符ヒットci"
にカーソルを置き、引用符の内容を変更ctrl+v
してctrl+u
から、同じ行に続けてヒットしlet key="^D"
ます。
let key="^Y"
代わりに使用するつもりでしたlet key="^U"
。同じ動作を作成しますが、'scroll'
設定には影響しません。
statoxアプローチを変えて、ラインラップ上でより一貫したスクロールを実現しました。クォーターステップが必要な場合は、0.618を0.25などに戻します。
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>
正確な25%ではなく、適切な一般的な回答が必要な場合は、25で除算することでページ上の通常の行数を考慮し、システムマッピングを設定できます。たとえば、画面上に通常約100行ある場合、その25%は25行なので、資本JおよびKのようなものにキーマッピングを設定して、25行をすばやく上下に移動できます。
noremap J 25j
noremap K 25k
ファイル全体のクォーターマークにジャンプする場合は、通常モードで次のように入力します。
25%
noremap J 25j
値25
をハードコードするため、たとえば100行のウィンドウを水平に分割すると、マッピングは実際に新しいウィンドウの50%をナビゲートします。あなたの目のオプションについて:25%
、私は100行を持っているバッファと、私は25%の前方タイピングを移動する場合:私はそれが存在を知っていませんでしたが、私のテストから、最初の行に基づいた位置にカーソルを置くと思われる:25%
私をもたらしますカーソルがどこにあっても25行目。また、この機能を説明するヘルプトピックをドキュメントで見つけることができませんか?