😶

Vimの区切り線の表示をミニマルにする設定を紹介

2024/08/05に公開

どうも。以前Statuslineになった者です。

https://zenn.dev/vim_jp/articles/358848a5144b63

一度Statuslineになったらなんか満足してしまい、以降はStatuslineを全く表示しない設定を使っています。情報を知りたくなったら<c-g>g<c-g>で表示させればよいのでそれほど問題になりません。

「デフォルトのVimかな?」と思われたでしょうか。実は違います。vim --cleanで起動した場合、windowを分割すると以下のようになります。

意外と区切り線の主張が強いんですよね。あと、ファイル末尾以降を示す~が地味に気になります。

最初の画像のような表示にするためには少し設定が必要になります。
以下の設定をvimrcに追加してください。

vimrc
" 最下部のstatuslineを表示しない
set laststatus=0

" ファイル末尾以降の`~`の表示を削除
set fillchars+=eob:\\x20

" 縦区切り線をシンプルに
set fillchars+=vert:" 横区切り線をシンプルに
set statusline=set fillchars+=stl:,stlnc:" 区切り線のハイライトを抑え気味に
highlight! link StatusLine Comment
highlight! link StatusLineNC Comment
if has('nvim')
  highlight! link WinSeparator Comment
else
  highlight! link VertSplit Comment
endif

ポイントは'statusline''fillchars'stl/stlncに設定する文字を揃えることです。VimからするとStatuslineと区切り線をそれぞれ表示しているのですが、同じ文字なので、見た目は一本の線になります[1]
また、ハイライトは多くのカラースキームで薄めの配色であるCommentにしています。これはカラースキームによって印象が異なると思うので、適宜調整してください。

なお、筆者はこちらの設定は主にVim用で使っています。Neovimではlaststatus=3だけで区切り線をシンプルにできるので、そちらもおすすめです。

脚注
  1. \ (スペース)を設定すると見た目上の区切りを消すこともできてしまいます ↩︎

Discussion