vim の termguicolors はすべてを白黒にします 質問する

vim の termguicolors はすべてを白黒にします 質問する

アイデアとしては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" ですが、 の場合にのみ設定されます$TERMxterm一部の端末では、同じシーケンスを受け入れますが、すべてのセミコロンがコロンに置き換えられます (これは実際には互換性が高いですが、サポート範囲は広くありません)。

     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 つの符号なし長整数が渡されます。

おすすめ記事