まくまくVimノート
画面スクロールの方法いろいろ
2007-01-30

画面スクロール操作

画面スクロール

^F  -- 1画面下へスクロール
^B  -- 1画面上へスクロール
^D  -- 'scroll' オプションで指定した行だけ下へスクロール
^U  -- 'scroll' オプションで指定した行だけ上へスクロール

表示位置を移動

下記の操作は、カーソル位置(行)をキープしたまま、画面の表示位置だけを移動させます。

z<CR>  -- カレント行を画面上端へ ※1
zz     -- カレント行を画面中央へ
z.     -- カレント行を画面中央へ(カーソルを最初の非空白文字へ)
zb     -- カレント行を画面下端へ
z-     -- カレント行を画面下端へ(カーソルを最初の非空白文字へ)
z+     -- 画面下端を画面上端へ(これ使い道あるの??)
^Y     -- 1行下へスクロール
^E     -- 1行上へスクロール

※1 … 例えば、ソースコードの関数名を定義している行で、z [Enter] とすれば、その関数の定義が画面上端から表示されます。 z コマンドは、scrolloff オプションに 0 以外が設定されていると、その値によって移動後の表示位置が少々変わります。

応用例: 30 行目が画面上端に表示されるように移動

数値プレフィックスを付けて z コマンドを実行すると、カレントにする行番号を指定することができます。

30z[Enter]

CTRL-D/CTRL-U による画面スクロール量の設定 (scroll)

CTRL-DCTRL-U による画面スクロール行数は、scroll オプションで設定できます。

:set scroll=3

scroll オプションのデフォルトは 0 になっており、この場合だけは画面に表示されている行数の半分だけスクロールするという特殊な動きをします。 個人的には、一度に画面半分もスクロールされると脳がついていけないので、3 行くらいのスクロールに変更しておくことをオススメします。

~/.vimrc

au BufEnter * set scroll=3

画面上端、下端でのスクロール方法の設定 (scrolljump)

1 番上の行にカーソルがあるときに、さらに上へカーソルを移動させようとしたときにスクロールする行数を指定するには scrolljump オプションで指定します(デフォルトは 1)。

:set scrolljump=1

カーソルが画面の上端、下端まで行く前にスクロールを開始するには、scrolloff オプションで何行残してスクロールを開始するかを指定します(デフォルトは 0)。 この値を 0 以外にしておくと、作業効率が上がります。

:set scrolloff=5
2007-01-30