スクロール

Nvim :help ページは、このスクリプトによって ソースから tree-sitter-vimdoc パーサーを使用して生成されています。


スクロール操作
これらのコマンドはウィンドウの内容を移動します。カーソル位置がウィンドウ外に移動した場合、カーソルはウィンドウ上に戻されます('scrolloff' オプションで設定された画面行数分、カーソルの周囲に表示されます)。1ページはウィンドウの行数から2を引いた数です。これらのコマンドのニーモニックは少し分かりにくいかもしれません。コマンドは、バッファ内でウィンドウ(バッファの見える部分)を上下に移動することを指していることに注意してください。ウィンドウがバッファ内で上に移動すると、ウィンドウ内のテキストは画面上で下に移動します。
はじめにについては、ユーザーマニュアルの 03.7 セクションを参照してください。

1. 下方向へのスクロール 下方向スクロール

以下のコマンドは、編集ウィンドウ(バッファの見える部分)を下方向に移動します(つまり、テキストバッファの下の方の行が表示されるようになります)。
CTRL-E
CTRL-E ウィンドウをバッファ内で[回数]行下にスクロールします。テキストは画面上で上に移動します。ニーモニック: Extra lines(追加行)。
CTRL-D
CTRL-D ウィンドウをバッファ内で下方向にスクロールします。スクロールする行数は 'scroll' オプション(デフォルト:画面の半分)で指定されます。[回数]が指定された場合、最初に 'scroll' オプションを[回数]に設定します。カーソルはファイル内で同じ行数だけ下に移動します(可能な場合。行が折り返された場合やファイルの最後に達した場合には、違いが生じる可能性があります)。カーソルがバッファの最後の行にある場合は何も起こらず、ビープ音が鳴ります。 'startofline' オプションも参照してください。
<S-Down> または <S-Down> <kPageDown> <PageDown> または <PageDown> CTRL-F <S-CR> または <S-CR> <S-NL> <S-+> または SHIFT-+ <S-Plus> CTRL-F ウィンドウをバッファ内で[回数]ページ前方に(下方向に)スクロールします。'startofline' オプションも参照してください。ウィンドウが1つしかない場合は、'window' オプションが使用される場合があります。
z+
z+ [回数]なし: ウィンドウのすぐ下の行をウィンドウの上部に表示するように再描画します。カーソルをその行の最初の非空白文字に置きます。[回数]あり: "z<CR>"と同じです。

2. 上方向へのスクロール 上方向スクロール

以下のコマンドは、編集ウィンドウ(バッファの見える部分)を上方向に移動します(つまり、テキストバッファの上の方の行が表示されるようになります)。
CTRL-Y
CTRL-Y ウィンドウをバッファ内で[回数]行上にスクロールします。テキストは画面上で下に移動します。注:MS-Windowsキーバインドを使用する場合、CTRL-Y はやり直しに再マップされます。
CTRL-U
CTRL-U ウィンドウをバッファ内で上方向にスクロールします。スクロールする行数は 'scroll' オプション(デフォルト:画面の半分)で指定されます。[回数]が指定された場合、最初に 'scroll' オプションを[回数]に設定します。カーソルはファイル内で同じ行数だけ上に移動します(可能な場合。行が折り返された場合やファイルの最後に達した場合には、違いが生じる可能性があります)。カーソルがバッファの最初の行にある場合は何も起こらず、ビープ音が鳴ります。 'startofline' オプションも参照してください。
<S-Up> または <S-Up> <kPageUp> <PageUp> または <PageUp> CTRL-B <S--> または <S-Minus> SHIFT-MINUS CTRL-B ウィンドウをバッファ内で[回数]ページ後方に(上方向に)スクロールします。'startofline' オプションも参照してください。ウィンドウが1つしかない場合は、'window' オプションが使用される場合があります。
z^
z^ [回数]なし: ウィンドウのすぐ上の行をウィンドウの下部に表示するように再描画します。カーソルをその行の最初の非空白文字に置きます。[回数]あり: まずテキストをスクロールして[回数]行目をウィンドウの下部に配置し、次にウィンドウの上部にある行をウィンドウの下部に表示するように再描画します。カーソルをその行の最初の非空白文字に置きます。

3. カーソルを基準としたスクロール カーソル基準スクロール

以下のコマンドは、カーソルを同じ行に保ちながら、編集ウィンドウ(バッファの見える部分)の位置を変更します。 'scrolloff' オプションにより、カーソルの周囲にコンテキスト行が表示される場合があります。
z<CR>
z<CR> 再描画し、[回数]行目をウィンドウの上部に配置します(デフォルトはカーソル行)。カーソルをその行の最初の非空白文字に置きます。
zt
zt "z<CR>"と同様ですが、カーソルを同じ列に残します。
zN<CR>
z{高さ}<CR> 再描画し、ウィンドウの高さを{高さ}行にします。画面の更新が非常に遅い場合に、行数を少なくするのに役立ちます。高さを画面の物理的な高さよりも大きくすることはできません。
z.
z. 再描画し、[回数]行目をウィンドウの中央に配置します(デフォルトはカーソル行)。カーソルをその行の最初の非空白文字に置きます。
zz
zz "z."と同様ですが、カーソルを同じ列に残します。注意: CapsLockがオンになっている場合、このコマンドは "ZZ" になり、バッファを書き込んで終了します!
z-
z- 再描画し、[回数]行目をウィンドウの下部に配置します(デフォルトはカーソル行)。カーソルをその行の最初の非空白文字に置きます。
zb
zb "z-"と同様ですが、カーソルを同じ列に残します。

4. 水平方向のスクロール 水平スクロール

以下の4つのコマンドでは、カーソルは画面に追従します。カーソルがある文字が画面外に移動した場合、カーソルは画面上にある最も近い文字に移動します。 'sidescroll' の値は使用されません。
z<Right> または zl z<Right> zl テキストの表示を[回数]文字右に移動します。つまり、テキストを[回数]文字左にスクロールします。これは、'wrap' がオフの場合にのみ機能します。
z<Left> または zh z<Left> zh テキストの表示を[回数]文字左に移動します。つまり、テキストを[回数]文字右にスクロールします。これは、'wrap' がオフの場合にのみ機能します。
zL
zL テキストの表示を画面幅の半分だけ右に移動します。つまり、テキストを画面幅の半分だけ左にスクロールします。これは、'wrap' がオフの場合にのみ機能します。
zH
zH テキストの表示を画面幅の半分だけ左に移動します。つまり、テキストを画面幅の半分だけ右にスクロールします。これは、'wrap' がオフの場合にのみ機能します。
以下の2つのコマンドでは、カーソルはテキスト内では移動せず、テキストのみが画面上でスクロールします。
zs
zs カーソルを画面の開始位置(左側)に配置するようにテキストを水平方向にスクロールします。これは、'wrap' がオフの場合にのみ機能します。
ze
ze カーソルを画面の終了位置(右側)に配置するようにテキストを水平方向にスクロールします。これは、'wrap' がオフの場合にのみ機能します。

5. 同期スクロール スクロールバインディング

1つのウィンドウをスクロールすると、他のウィンドウもスクロールされるように、2つ以上のウィンドウをまとめてバインドしたい場合があります。Vimでは、(ウィンドウ固有の)'scrollbind' オプションを設定することで、ウィンドウにこの動作を持たせることができます。 'scrollbind' が設定されているウィンドウをスクロールすると、他のすべての 'scrollbind' ウィンドウも可能な限り同じ量だけスクロールされます。 'scrollbind' の動作は、'scrollopt' オプションで変更できます。
スクロールバーまたはマウスホイールを使用する場合、バインディングは、フォーカスのあるウィンドウ(カーソルがあるウィンドウ)をスクロールする場合にのみ発生します。これにより、オプションをリセットせずに、一時的にスクロールバインディングを回避できます。
ウィンドウに 'diff' オプションも設定されている場合、スクロールバインディングは2つのバッファ間の違いを使用して位置を正確に同期させます。それ以外の場合は、以下の方法が使用されます。
相対スクロールバインド
'scrollbind' ウィンドウは、その「相対オフセット」を追跡します。これは、現在のウィンドウの垂直スクロール位置と他のウィンドウの垂直スクロール位置の差と考えることができます。 'scrollbind' ウィンドウの1つがテキストの開始または終了の制限を超えて垂直にスクロールするように要求された場合、ウィンドウはスクロールしなくなりますが、制限を超えてどれだけ移動したいかを記憶します。ウィンドウはこの情報を保持するため、バッファの制限を超えてスクロールするように要求された場合でも、同じ相対オフセットを維持できます。
ただし、バッファの制限を超えた相対オフセットを持つ 'scrollbind' ウィンドウにカーソルフォーカスが与えられると、他の 'scrollbind' ウィンドウは、現在のウィンドウの相対オフセットが有効な場所にジャンプする必要があります。この動作は、'scrollopt' オプションから「jump」フラグをクリアすることで変更できます。
同期バインド :syncbind :sync :syncbind すべての 'scrollbind' ウィンドウが同じ相対オフセットを持つように強制します。つまり、'scrollbind' ウィンドウのいずれかがバッファの先頭にスクロールされると、すべての 'scrollbind' ウィンドウもバッファの先頭に配置されます。
スクロールバインドのクイック調整
'scrollbind' フラグは、キーボードコマンドを使用してウィンドウを垂直にスクロールする場合に意味があり、カーソルフォーカスがあるウィンドウで垂直スクロールバーまたはマウスホイールを使用する場合にも意味があります。ただし、カーソルフォーカスがないウィンドウで垂直スクロールバーまたはマウスホイールを使用する場合、'scrollbind' は無視されます。これにより、'scrollbind' ウィンドウの相対オフセットをすばやく調整できます。

6. マウスホイールによるスクロール マウスホイールスクロール

マウスにスクロールホイールが付いている場合、GUIのNvimとマウスをサポートする端末で動作するはずです。デフォルトでは垂直スクロールホイールのみがサポートされていますが、GUIによっては水平スクロールホイールもサポートされています。
水平スクロールは、'nowrap' が設定されている場合にのみ機能することに注意してください。また、'guioptions' の "h" フラグが設定されていない限り、カーソル行が画面からスクロールアウトされようとしている場合、カーソルは表示されている最も長い行に移動します(水平スクロールバーの動作と同様です)。
'mousescroll' オプションを使用して、スクロールする行数/列数を制御できます。また、キーをマッピングすることでデフォルトの動作を変更することもできます。たとえば、ノーマルモードで一度に1ページをスクロールするには
:map <ScrollWheelUp> <C-B>
:map <ScrollWheelDown> <C-F>
スクロールキーは、Shift、Ctrl、Altなどの修飾キーと組み合わせて使用することもできます。
マウスでスクロールする場合、現在カーソルがあるウィンドウがスクロールされます。これにより、非アクティブなウィンドウをスクロールできます。スクロールキーがキーボードキーに再マップされている場合、現在カーソルの位置に関係なく、アクティブなウィンドウが影響を受けることに注意してください。
メイン
コマンド索引
クイックリファレンス