Vim
vimrc

透明感のあるVim環境をめざして

More than 1 year has passed since last update.

はじめに

僕は透明感のある作業環境が好きです。
GVimでもiTermでもCygwinでも、なんでもすぐ背景を半透明化したがります。
なんとなく格好いいし、後ろにブラウザや資料を展開していると、いちいちウィンドウを切り替えることなく透かして見ることができて便利です。
しかしVimのカラースキームに背景色が設定されていると、ウィンドウの透過設定が無視され、せっかくの透明感が台無しになってしまいます。
そこで、.vimrcに設定を書き加え、カラースキームの良さはそのままに、背景だけを透明化します。

.vimrc

.vimrcでカラースキームを設定している箇所

.vimrc
colorscheme XXXXX

よりも後の行に、以下を追記します。

.vimrc
highlight Normal ctermbg=NONE guibg=NONE
highlight NonText ctermbg=NONE guibg=NONE
highlight SpecialKey ctermbg=NONE guibg=NONE
highlight EndOfBuffer ctermbg=NONE guibg=NONE

非テキストのctermbgguibgNONEを設定しています。

以下、それぞれのハイライトグループの意味です。

グループ 意味
Normal 通常のテキスト部分
NonText eol, extends, precedes
SpecialKey nbsp, tab, trail
EndOfBuffer バッファ外の行(行頭に~が表示されている行)

EndOfBufferのみ、Vim 7.4.2213 以降のバージョンで使用可能

これで、Vimに透明感を与えることができました。

GUIパーツの非表示化

GVimやMacVimでは、ウィンドウ内にツールバーやスクロールバー等が表示されます。
これらのパーツはどうやっても半透明化できないので、非表示化してしまいましょう。
そもそもよく訓練されたVimmerであれば、マウスを使って操作するインターフェースなど必要ありません。

.vimrc
if has('gui')
  set guioptions-=T
  set guioptions-=m
  set guioptions-=r
  set guioptions-=R
  set guioptions-=l
  set guioptions-=L
  set guioptions-=b
endif

has('gui')で、GUIモードで動作しているかどうかを判別できます。
guioptions-=Xでは、GUI用のどのパーツを非表示化するかを指定しています。
オプションの意味については、このあたりを参照ください。

GUI固有の設定なので、.gvimrcに書いても良いです。
その場合はhas('gui')は不要です。

.gvimrc
set guioptions-=T
set guioptions-=m
set guioptions-=r
set guioptions-=R
set guioptions-=l
set guioptions-=L
set guioptions-=b

以上の設定で、テキストとタイトルバー以外の全てが透過された、とても美しい環境ができあがります。