アイデアとしてはset termguicolors
、Vim で を使用することで、カラー スキーム (gruvbox) がターミナル ( st
、True Color をサポート) で GVim とまったく同じように表示されるようになるはずです。しかし、表示されるのは黒い背景に白いテキストだけです。
vimrc でカラースキームを設定する部分:
set background=dark
colorscheme gruvbox
set termguicolors
ベストアンサー1
読むかもしれません:h xterm-true-color
。
私st
も使用していますが、確かに設定ではtermguicolors
白黒の色のみが表示されました。
しかし、ヘルプのアドバイスに従って、次の内容を追加しました。
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
その後、色が再び現れました。お役に立てれば幸いです。
以下は全文抜粋です:h xterm-true-color
:
Vim は、ターミナルがこれをサポートしている場合、ターミナルで True Color の使用をサポートしています (|highlight-guifg| および |highlight-guibg| から取得)。これを機能させるには、'termguicolors' オプションを設定する必要があります。https://gist.github.com/XVilka/8346728True Color をサポートする端末のリスト。
場合によっては、'termguicolors' を設定するだけでは不十分で、|t_8f| および |t_8b| オプションを明示的に設定する必要があります。これらのオプションのデフォルト値はそれぞれ "^[[38;2;%lu;%lu;%lum" および "^[[48;2;%lu;%lu;%lum" ですが、 の場合にのみ設定されます
$TERM
。xterm
一部の端末では、同じシーケンスを受け入れますが、すべてのセミコロンがコロンに置き換えられます (これは実際には互換性が高いですが、サポート範囲は広くありません)。let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum" let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
これらのオプションには printf 文字列が含まれており、|printf()| (実際には C の同等機能、つまり
l
修飾子) が t_ オプション値で呼び出され、それぞれ赤、緑、青を表す 0 から 255 (両端を含む) までの任意の値を持つ 3 つの符号なし長整数が渡されます。