1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iTerm2+tmux+NeoVimで背景を透過させる

Posted at

tl;dr

  • tmuxを挟んでVimを使うならguibg=NONEを設定しないと透過されない
  • set cursorlineしているとカーソル行が透過されない

はじめに

iTerm2のPreferencesで透過設定してウキウキ気分でVim開いたら背景が真っ黒になった
やはり500番煎じ

Vimのハイライト設定

ポイントはcolorschemeを設定した後に読み込まれるようにすること。
さもなくばcolorschemeの設定が上書きされてしまうかもしれない。

init.vim
colorscheme iceberg    "example

highlight Normal ctermbg=NONE guibg=NONE
highlight NonText ctermbg=NONE guibg=NONE
highlight LineNr ctermbg=NONE guibg=NONE
highlight Folded ctermbg=NONE guibg=NONE
highlight EndOfBuffer ctermbg=NONE guibg=NONE

CUIとGUIのテキスト行、テキスト下空白、行番号、折り返し、ファイルの終わり以降の空白を無しに設定。

.tomlでプラグイン管理していたらcolorschemeの下に以下を追加。

dein.toml
hook_add = '''
  au MyAutoCmd VimEnter * nested call SetHighlightOptions()

  function SetHightlightOptions()
    colorscheme iceberg  "example
    highlight Normal ctermbg=NONE guibg=NONE
    highlight NonText ctermbg=NONE guibg=NONE
    highlight LineNr ctermbg=NONE guibg=NONE
    highlight Folded ctermbg=NONE guibg=NONE
    highlight EndOfBuffer ctermbg=NONE guibg=NONE
  endfunction
'''

Vim日本語ドキュメントによれば、VimEnterでVimの起動時処理が全部終わった一番最後に実行されるようにしている?
nestedしているのはau内部でSetHighlightOptions関数をネストするため?
設定周辺は完璧に理解はしてませんが、透過それ自体とは無関係なのでひとまず蛇足です。

カーソル行だけ透過されない

set cursorlineの設定があるとカーソル行がハイライトされるので透過が失われます。
同様に、検索等のハイライトでも該当部分の透過がなくなります。仕方ないですね。

参考

背景透過でかっこいいvimを作る
透明感のあるVim環境をめざして

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?