はじめに
僕は透明感のある作業環境が好きです。
GVimでもiTermでもCygwinでも、なんでもすぐ背景を半透明化したがります。
なんとなく格好いいし、後ろにブラウザや資料を展開していると、いちいちウィンドウを切り替えることなく透かして見ることができて便利です。
しかしVimのカラースキームに背景色が設定されていると、ウィンドウの透過設定が無視され、せっかくの透明感が台無しになってしまいます。
そこで、.vimrcに設定を書き加え、カラースキームの良さはそのままに、背景だけを透明化します。
.vimrc
.vimrcでカラースキームを設定している箇所
colorscheme XXXXX
よりも後の行に、以下を追記します。
highlight Normal ctermbg=NONE guibg=NONE
highlight NonText ctermbg=NONE guibg=NONE
highlight SpecialKey ctermbg=NONE guibg=NONE
highlight EndOfBuffer ctermbg=NONE guibg=NONE
非テキストのctermbgとguibgにNONEを設定しています。
以下、それぞれのハイライトグループの意味です。
| グループ | 意味 |
|---|---|
| Normal | 通常のテキスト部分 |
| NonText | eol, extends, precedes |
| SpecialKey | nbsp, tab, trail |
| EndOfBuffer | バッファ外の行(行頭に~が表示されている行) |
※ EndOfBufferのみ、Vim 7.4.2213 以降のバージョンで使用可能
これで、Vimに透明感を与えることができました。
GUIパーツの非表示化
GVimやMacVimでは、ウィンドウ内にツールバーやスクロールバー等が表示されます。
これらのパーツはどうやっても半透明化できないので、非表示化してしまいましょう。
そもそもよく訓練されたVimmerであれば、マウスを使って操作するインターフェースなど必要ありません。
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')は不要です。
set guioptions-=T
set guioptions-=m
set guioptions-=r
set guioptions-=R
set guioptions-=l
set guioptions-=L
set guioptions-=b
以上の設定で、テキストとタイトルバー以外の全てが透過された、とても美しい環境ができあがります。