背景透過でかっこいいvimを作る

vimmerの皆さん,こんにちは.
突然ですが,vimの背景にうっすらーとデスクトップの背景が映り込んでいるのってめちゃめちゃかっこ良くないですか?(笑)
背景を透過させると,例えば下の画像のようになります.
いい感じにうっすら背景が透けていると思います.
ということで今回はvimの背景を透明化する方法を書き留めていきます.

 

 

端末の背景設定

まずはじめに,お使いの端末(ターミナル)の背景を透過しましょう.
vimは端末(ターミナル)の上で動いているので,まず端末の背景が透けていないと話になりません.
私はUbuntu GNOMEを使用しているため,gnome-terminalを用いて背景を透明にしていきます.
gnome-terminalでなくても,一般のターミナルなら背景を透過することができると思いますので,試してみてください.
ターミナルの設定から「透過の背景を使用する」のチェックボックスにチェックをつけ,好みの透過度に設定します.
ここであまりにも透明にしすぎると背景の色合いや模様にもよりますが,文字が見えにくくなってしまうので要注意です.

 

 

.vimrcの設定

次に .vimrc に以下の項目を追加します.
追加する場所は,カラースキームの定義(colorscheme jellybeans 等)以降であればどこでも大丈夫です.
カラースキームの定義より前にこの設定を置いておくと,カラースキームの設定で透明にする設定が上書きされてしまう可能性があるので注意してください.

上記コマンドでカラースキームで定義された背景色の

・テキスト
・テキストの下の余白
・行番号
・コマンド折りたたみ
・ファイルの終わり以降の空白

を背景なしに上書きしています.

 

 

ちょっとひと工夫

さて,この状態でカラースキームを変更したらどうなるでしょうか...
例えば使う言語によって使用するカラースキームを変えたいなんて時がありますよね.

:colorscheme <your_colorscheme>

上記コマンドを打つと当然ですがカラースキームが上書きされるため,背景透過ではなくなってしまいます.
そこで,先ほどの設定にひと工夫してみました.

こちらのコードはvimのautocmdという機能を利用して,カラースキームが読み込まれた際に背景なしの設定に上書きすることができます.
autocmd Colorschemeという部分がカラースキームの設定をした直後に,といった意味になります.
次の*(アスタリスク)の部分は全てのファイルに対してといった意味となります.
その後に続くコマンドを上記タイミングに対象ファイルに対して実行するといった意味になります.

vimスクリプトって便利ですね!