Menggunakan skema warna dengan vim dan dempul

15

Saya mencoba menggunakan skema warna gurun dengan VIM 7.0 pada CentOS 5.6 x64 yang terletak di sini:

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

Saya sudah mengunduh file dan menyimpannya di ~/.vim/colorsdirektori saya . Saya kemudian memberi tahu VIM untuk menggunakan skema warna dengan mengeluarkan:

:colors desert

Seharusnya terlihat seperti ini:

masukkan deskripsi gambar di sini

Namun saya mendapatkan ini:

masukkan deskripsi gambar di sini

Saya masuk ke server ini hanya sebagai pengguna biasa (tidak rootatau sudo) menggunakan Putty 0,60 dan telah menetapkan opsi berikut di bawah Window -> Colours:

Izinkan terminal untuk menentukan warna ANSI - dicentang
Izinkan terminal menggunakan mode 256-warna - dicentang
Tes tebal adalah warna yang berbeda - diperiksa
Mencoba menggunakan palet logis - tidak dicentang
Gunakan warna sistem - tidak dicentang

Jika saya sudoatau masuk sebagai rootdan mencoba yang sama saya tidak mendapatkan warna sama sekali selain teks putih pada latar belakang hitam.

Apakah skema ini sebagian besar ditujukan untuk gVIM dan apakah Putty tidak dapat menampilkan warna-warna ini?

Saya sudah berkeliling sedikit di Google dan menabrak artikel seperti ini tetapi tampaknya tidak berfungsi.

Kev
sumber

Jawaban:

22

Secara default, Putty menampilkan dirinya sebagai xterm. The terminfo database yang digunakan oleh berbagai program untuk menentukan kemampuan terminal, mengatakan xtermmendukung delapan warna saja:

$ infocmp -1L xterm | grep max_colors

Ini berarti bahwa meskipun versi Xterm Anda mendukung mode 256-warna, program tidak akan mengetahuinya.

  • Perbaikan termudah adalah dengan mengatur variabel lingkungan $ TERM Anda ke xterm-256color.

    (Dalam Anda ~ / .profile, Anda bisa menggunakan:
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi)

  • Anda dapat memberitahu Putty untuk selalu mengidentifikasi dirinya sebagai xterm-256color, melalui Konfigurasi → Koneksi → Data → string tipe terminal .

    Catatan: Jika Anda menggunakan # 1 atau # 2, dan Anda terhubung ke server yang tidak memiliki entri terminfo yang sesuai, semua program TUI akan rusak.

  • Anda juga dapat mengatur 't_Co'opsi dalam vim 256untuk mengganti nilai terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Atau Anda dapat mengedit database terminfo .

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

    Entri yang diperbarui akan disimpan di ~/.terminfo.

pengguna1686
sumber
Jawaban yang sangat bagus. Ini lebih baik, tetapi saya merasa 256 warna tidak cukup untuk membuat nuansa pastel ini. Tahu mengapa saya tidak mendapatkan warna sama sekali saat masuk sebagai root?
Kev
1
@Kev: 1) Mode 256-warna adalah yang terbaik yang bisa Anda dapatkan pada emulator terminal yang kompatibel dengan VT100. (Saya mendengar KDE Konsole memiliki dukungan warna asli, tetapi ini sangat tidak standar.) 2) Ketika Anda login sebagai root, Anda mendapatkan direktori home yang terpisah, dan yang terpisah ~/.vim/colorsjuga.
user1686
1
@Kev: Karena vi tidak memiliki skema warna atau penyorotan sintaks - atau apa pun kecuali fitur dasar asli. (Vim adalah "Vi Improved" setelah semua.)
user1686
1
vi --versionmengatakan itu vim, jadi apakah itu vim yang dipotong agar terlihat seperti vi? Maaf kalau itu pertanyaan bodoh, sudah bertahun-tahun sejak saya bekerja dengan unix in angry (kotak SCO Unix dengan port serial) dan hanya ada vi (real vi).
Kev
1
Semacam. Ketika Anda menjalankan vim sebagai " vi", ia mulai dalam mode "kompatibilitas", berperilaku sebanyak mungkin seperti vi. Saya tidak tahu CentOS, jadi saya tidak yakin apakah itu hanya mode, atau build yang dipangkas sepenuhnya terpisah. (Distro saya
mengemas