11

重複の可能性:
ほとんどの vim 配色を使用すると、スクリーンショットのようにきれいに表示されないのはなぜですか?

端末からのみ使用するようにvim構成を転送しようとしています。現在、私は gVim を使用しており、すべて正常に動作しています。

しかし、terminal.app では配色がオフになっています。terminal.app には Solarized 256 テーマを使用し、vim では solarized テーマを使用しています。

これは彼らがどのように見えるかです:

gVim 左、Terminal.app 右

背景に正しい色を表示するには、 g:solarized_termtrans = 1 を設定する必要がありました。

4

1 に答える 1

9

私はかつてこの問題を抱えていました。

ただし、次のステートメントですべてが修正されました。.vimrc ファイルでターミナル サポートを制御する方法は次のとおりです

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    " Make Solarized use 16 colors for Terminal support
    let g:solarized_termcolors=16
endif

ターミナルを使用している場合、基本的にターミナルで修正されます。を使ってみてください:let g:solarized_termcolors = 16

擬似コード:

  • ユーザーが GUI を使用していない場合:
    • 次に、termtrans等しい値を 1 に設定します。
    • そして、Vim に 16 色、またはターミナルがサポートしている場合は 256 色のみを使用するように指示します (サポートしている色はわかりません)。
  • エンディフ

編集1:

256 色の端末を使用していることが確実な場合は、そのままにしておくこともできます。完全に機能します。そのように: https://github.com/Greduan/dotfiles/blob/6dac113d8281b0201399831bf62a2ea520d28154/vim/vimrc.vim#L551-L561

if !has('gui_running')
    " Compatibility for Terminal
    let g:solarized_termtrans=1

    if (&t_Co >= 256 || $TERM == 'xterm-256color')
        " Do nothing, it handles itself.
    else
        " Make Solarized use 16 colors for Terminal support
        let g:solarized_termcolors=16
    endif
endif

これが行うことは、ターミナルがあるかどうかを確認することです。設定されている場合はtermtrans、端末に 256 色があるかどうかを確認し、そのままにしておく場合は、Solarized を 16 色を使用するように設定します。これははるかにうまく機能します。

于 2012-12-30T20:45:43.983 に答える