1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Vimでカーソルが常に画面中央行になる設定

はじめに

コメントで指摘頂いた内容です。
記事の内容は、ファイル末尾の挙動を除いて、

: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とマッピングする。(今回は思いついたものだけ抜粋したため、適宜必要なコマンドをマッピングしてもらうと良い)
画面上部ではカーソル行を中央にすることはできない。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?