はじめに
僕は透明感のある作業環境が好きです。
GVimでもiTermでもCygwinでも、なんでもすぐ背景を半透明化したがります。
なんとなく格好いいし、後ろにブラウザや資料を展開していると、いちいちウィンドウを切り替えることなく透かして見ることができて便利です。
しかしVimのカラースキームに背景色が設定されていると、ウィンドウの透過設定が無視され、せっかくの透明感が台無しになってしまいます。
そこで、.vimrc
に設定を書き加え、カラースキームの良さはそのままに、背景だけを透明化します。
.vimrc
.vimrc
でカラースキームを設定している箇所
.vimrc
colorscheme XXXXX
よりも後の行に、以下を追記します。
.vimrc
highlight Normal ctermbg=NONE guibg=NONEhighlight NonText ctermbg=NONE guibg=NONEhighlight SpecialKey ctermbg=NONE guibg=NONEhighlight 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であれば、マウスを使って操作するインターフェースなど必要ありません。
.vimrc
if has('gui')setguioptions-=T
setguioptions-=msetguioptions-=rsetguioptions-=R
setguioptions-=lsetguioptions-=L
setguioptions-=bendif
has('gui')
で、GUIモードで動作しているかどうかを判別できます。guioptions-=X
では、GUI用のどのパーツを非表示化するかを指定しています。
オプションの意味については、このあたりを参照ください。
GUI固有の設定なので、.gvimrc
に書いても良いです。
その場合はhas('gui')
は不要です。
.gvimrc
setguioptions-=T
setguioptions-=msetguioptions-=rsetguioptions-=R
setguioptions-=lsetguioptions-=L
setguioptions-=b
以上の設定で、テキストとタイトルバー以外の全てが透過された、とても美しい環境ができあがります。