vimとputtyで配色を使用する


15

ここにあるCentOS 5.6 x64上のVIM 7.0で砂漠の配色を使用しようとしています:

http://hans.fugal.net/vim/colors/desert.vim

ファイルをダウンロードし、ディレクトリに保存しました~/.vim/colors。次に、VIMに以下を発行して配色を使用するように指示します。

:colors desert

次のようになります。

ここに画像の説明を入力してください

しかし、私はこれを取得します:

ここに画像の説明を入力してください

私は、PuTTY 0.60を使用して通常のユーザー(rootまたはsudo)としてこのサーバーにログオンし、次のオプションを設定しましたWindow -> Colours

端末がANSI色を指定できるようにする-チェック
端末が256色モードを使用できるようにする-チェック
太字のテストは別の色です-チェック済み
論理パレットを使用しようとしています-チェックなし
システムカラーを使用-チェックなし

sudoまたはログオンしrootて同じことを試しても、黒の背景に白いテキスト以外の色がまったく表示されません。

これらのスキームは主にgVIMを対象としており、PuTTYはこれらの色を表示できないだけですか?

私は少しグーグルで検索して、このような記事にぶつかりましたが、機能していないようです。

回答:


22

デフォルトでは、PuTTYはとして表示されxtermます。terminfoの端末の能力を決定するためにさまざまなプログラムで使用されるデータベースは、言う、xtermサポート8色のみ:

$ infocmp -1L xterm | grep max_colors

つまり、Xtermのバージョンが256色モードをサポートしていても、プログラムはそれを認識しません。

  • 最も簡単な解決策は、$ TERM環境変数をに設定することxterm-256colorです。

    (〜/ .profileでは、次を使用できます。
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi

  • 構成→接続→データ→端末タイプ文字列を使用して、PuTTYに常に自分自身を識別するように指示できますxterm-256color

    注:#1または#2を使用してあなたがいないサーバーに接続した場合は持って良いと考えterminfoエントリを、すべてのTUIプログラムが壊れます。

  • また't_Co'、vim のオプションを設定して256、terminfo値をオーバーライドすることもできます。

    if &term == "xterm"
        set t_Co=256
    endif
    
  • または、terminfoデータベースを編集できます。

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    更新されたエントリはに保持され~/.terminfoます。


素晴らしい答え。良いのですが、これらのパステル調の色合いを表現するには256色では不十分だと感じています。としてログインしたときに色がまったく表示されない理由は何rootですか?
ケブ

1
@Kev:1)256色モードは、VT100互換の端末エミュレーターで入手できる最高のモードです。(KDE Konsoleはトゥルーカラーをサポートしていると聞きましたが、これは非常に非標準です。)2)rootとしてログインすると、別のホームディレクトリと別のホームディレクトリが取得さ~/.vim/colorsれます。
user1686

1
@Kev:配色や構文の強調表示vi がない -または元の基本機能以外は何もないため。(結局、Vim 「Vi改良」です。)
user1686

1
vi --versionそれはvimだと言うので、viのように見えるようにするのはカットバックvimですか?それが無難な質問であれば申し訳ありませんが、私は怒りの中でUNIX(シリアルポートを備えたSCO Unixボックス)で働いていて、vi(本当のvi)しかありませんでしたから何年も経ちました。
ケブ

1
並べ替え。vimを「vi」として実行すると、「互換性」モードで起動し、可能な限りviのように動作します。私はCentOSを知らないので、それが単なるモードなのか、完全に分離されたトリムダウンビルドなのかはわかりません。(私のディストリビューションは代わりに本当のviをパッケージ化しています...)
user1686
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.