Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimの端末機能の色を設定する方法

$
0
0

Vimの端末モードの色を設定する方法

Vim8.1から導入された端末機能で、色の設定方法を調べたのでメモ。

そもそもVimの端末機能とは

  • Vim8.1から導入された機能
  • Vimのwindowとしてterminalを開くことができる

terminal機能を使用できるか確認する方法

以下のコマンドでterminal modeが有効かどうか確認できる。
1が返ってくれば有効になっているため、ノーマルモードの時に:terminalとすれば起動できる。

:echo has('terminal')

調べようと思った背景

普段私はterminal上のVimを使用しており、Colorshemeとしてtender.vimを使用させていただいています。
適用した際のスクリーンショットは上記のGitHubのページを見てもらえればわかると思いますが、黒背景に映える青が非常に気に入っています。ただ、端末機能の背景色には対応していないようで、terminalを起動すると残念な色合いになっていました。そこで、そもそも端末機能の色を変更する方法を調べてみました。

と言っても、Vimのhelpを引けば一発でわかる内容です。

設定方法

ヘルプ(日本語)によると以下の通りです。

新しい端末ウィンドウでデフォルトで使用される16個のANSI カラーは、変数g:terminal_ansi_colorsを使用して設定することができます。これは、16個の色名または 16進数の色コードのリストでなければなりません。これは、|highlight-guifg|で受け入れられるものと同様です。 GUI カラーを使用しない場合、端末ウィンドウは常に端末基礎の16個の ANSI カラーを使用します。

vimrc内でg:terminal_ansi_colorsを設定すれば良いので、以下のように記載することで設定可能です。各項目はそれぞれ以下の色を表しています。

letg:terminal_ansi_colors=[    \'black',    \'red',    \'green',    \'yellow',    \'blue',    \'magenta',    \'cyan',    \'white',    \'black(bright)',    \'red(bright)',    \'green(bright)',    \'yellow(bright)',    \'blue(bright)',    \'magenta(bright)',    \'cyan(bright)',    \'white(bright)'    \]

自分好みの色を設定する方法

さて、Vimの設定方法がわかりましたので、自分の好みの色を設定したいと思います。
先ほど述べましたように私はVimのColorshemeとしてtender.vimを使用していますので、この色に合わせた端末の色を設定しようと思います。

しかし、ここで問題が一点。ただ単に自分の勉強不足なのですが、ANSIカラーと言われてもどのように設定すべきなのかわかりませんでした。
困っていたところ、terminal.sexyというサイトを発見しました。iTerm2などのColorsheme設定ファイルをImportして別のターミナル用の設定ファイルをExportできるようです。残念ながらVimの端末はありませんでしたが、カラーコードさえわかれば設定できるので、適当にXresources形式で出力して無事コードを取得できました。

letg:terminal_ansi_colors=[    \'#666666',    \'#f43753',    \'#c9d05c',    \'#ffc24b',    \'#b3deef',    \'#d3b987',    \'#73cef4',    \'#eeeeee',    \'#666666',    \'#f43753',    \'#c9d05c',    \'#ffc24b',    \'#b3deef',    \'#d3b987',    \'#73cef4',    \'#ffffff'    \]

最後に

設定方法を探してネットを徘徊してしまいましたが、素直にhelpを確認すればよかったです。
Vimのhelpはすごくしっかりと記載してあるので、困った時はまずはhelpを確認する癖をつけておいた方が良いと改めて思いました。
また、ANSIカラーについて、結局よくわかっていないので改めて調べておこうと思います。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>