はじめに
コメントで指摘頂いた内容です。
記事の内容は、ファイル末尾の挙動を除いて、
:set scrolloff=999
というコマンド一つで満たされるので、こちらをお使いください。
また、省略形で
:set so=999
というものもあるので、編集中に設定する場合はこちらがおすすめですよ!
記事の設定を用いるとVimを開いたまま元に戻すことができないのに対し、
:set so=0
とすると何もしない状態に戻すことができます。
また、
:set so=5
とすると、上下少なくとも5行を表示してくれるので、前後関係の把握に便利です。
こんなのがあれば便利なのではないかと考えて設定しましたが、やっぱり不便だったのでボツにしました。
しかし、必要な人もいるのではと思ったので、設定を晒します。
設定方法
~/.vimrc
に以下を追記するとよい。
.vimrc(一部抜粋)
noremap h hzz
noremap j jzz
noremap k kzz
noremap l lzz
noremap gj gjzz
noremap gk gkzz
noremap + +zz
noremap - -zz
noremap e ezz
noremap b bzz
noremap w wzz
noremap ge gezz
noremap E Ezz
noremap B Bzz
noremap W Wzz
noremap gE gEzz
noremap n nzz
noremap N Nzz
noremap G Gzz
noremap g; g;zz
noremap g, g,zz
noremap <C-u> <C-u>zz
noremap <C-d> <C-d>zz
noremap u uzz
noremap <C-r> <C-r>zz
noremap % %zz
noremap d dzz
noremap o ozz
noremap O Ozz
解説
Vimでは、zz
コマンドによってカーソル行が中央になるように画面を移動してくれる。
そこで、Vimで移動するコマンドを*zz
とマッピングする。(今回は思いついたものだけ抜粋したため、適宜必要なコマンドをマッピングしてもらうと良い)
画面上部ではカーソル行を中央にすることはできない。