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

vimmerの皆さん、こんにちは。

突然ですが、vimの背景にうっすらとデスクトップの背景が映り込んでいるのってめちゃめちゃかっこ良くないですか?笑。

この記事では、テキストエディタvimの背景を透過させ、お気に入りのデスクトップ壁紙がバックグラウンドに映り込むかっこいいvimの作り方を紹介していきます。

ところで、私の使用している強力なvimのプラグインをまとめたページを作ってみました。
興味のある方は以下のリンクからご覧ください。

vim とても強力なプラグインたち

背景を透過させたかっこいいvim

背景にうっすらとデスクトップの壁紙が写り込んでいて、おしゃれな感じだと思いませんか。笑。

vimの背景色だったり、カラースキームだったり、見た目が美しいとコーディングも一層捗りますよね。

ちなみにこの画像、背景を全て透明にしている訳ではありません。
透過率は30%ほどに抑えてあります。

あまりにも背景を透明にしてしまうと、デスクトップの壁紙がうるさ過ぎてコードが読めなくなる可能性があるので、あえてうっすら映り込む程度の透明度に留めてあります。

そのような微妙な背景の調節方法も含めて、背景色や背景透過の方法について紹介していきます。

 

端末の背景設定

まず初めに、お使いの端末(ターミナル)の背景を透過しましょう。
vimは端末(ターミナル)の上で動いているので、まず端末の背景が透けていないと話になりません。

端末を立ち上げ、設定を表示します。

Ubuntuの場合
設定の項目から、「透過の背景を使用する」のチェックボックスにチェックをつけ、好みの透過度に設定しましょう。
(ubuntuでの一般的な端末、gnome-terminalの場合)

Macの場合
環境設定→プロファイル→カラーとエフェクト。と進み、不透明度のスライダを調節します。
(Macのデフォルトのターミナルの場合)

背景の色合いや模様にもよりますが、あまりにも透明度をあげてしまうとデスクトップの背景がうるさくなってしまい、コードが見えにくくなってしまうので要注意です.

.vimrcの設定

次に .vimrc に以下の項目を追加し、vimの背景色を無くします。
ターミナル側で背景をいくら透明にしても、vim側で背景色が設定されていては背景を透過させることができません。

そこで、以下の手順でvimの背景色を無くしてしまいます。

highlight Normal ctermbg=none
highlight NonText ctermbg=none
highlight LineNr ctermbg=none
highlight Folded ctermbg=none
highlight EndOfBuffer ctermbg=none 

追加する場所は、カラースキームの定義以降であればどこでも大丈夫です。
カラースキームを設定していない方は、どこでも結構です。

カラースキームの定義より前にこの設定を置いておくと、カラースキームの設定で透明にする設定が上書きされてしまう可能性があるので注意してください。

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

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

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

ちょっとひと工夫

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

カラースキームを変えるためにvim内で以下のように入力したとします。

:colorscheme <your_colorscheme>

すると、当然ですがカラースキームが上書きされるため、背景透過ではなくなってしまいます。
そこで、先ほどの設定にひと工夫して、カラースキームをコマンドラインから変更しても、背景の透過が維持されるようにします。

augroup TransparentBG
  	autocmd!
	autocmd Colorscheme * highlight Normal ctermbg=none
	autocmd Colorscheme * highlight NonText ctermbg=none
	autocmd Colorscheme * highlight LineNr ctermbg=none
	autocmd Colorscheme * highlight Folded ctermbg=none
	autocmd Colorscheme * highlight EndOfBuffer ctermbg=none 
augroup END

こちらのコードはvimのautocmdという機能を利用していて、カラースキームが読み込まれた際に背景なしの設定に上書きすると行った処理を行なっています。

“autocmd Colorscheme”という部分が「カラースキームの設定をした直後に」を表しており、
次の*(アスタリスク)の部分は全ての種類のファイルに対してといった意味となります。

その後に続くコマンドを上記タイミングに対象ファイルに対して実行するといった意味になります。
vimスクリプトって便利ですね。

ちなみに、私はicebergというカラースキームを愛用しています。

おまけ

私の使用しているvimのプラグインを紹介するページを作りました。
vim とても強力なプラグインたち

こちらもぜひご覧ください。

 

以上、vimで背景を透過させる手順についてでした。