it-swarm-id.com

Bagaimana cara mengaktifkan dukungan penuh warna di Vim?

Saya memiliki Vim colorscheme yang indah ( xoria256 ) dan terlihat brilian di GVim, tetapi ketika saya menggunakan vim yang normal di Terminal, colorscheme hanya didukung sebagian - misalnya, latar belakang default semi-transparan terong latar warna digunakan. Bagaimana cara membuat Terminal dengan setia membuat skema warna Vim saya?

97
David Siegel

Terminal GNOME mendukung 256 warna, tetapi tidak mengiklankan dukungannya. Anda dapat mengesampingkan deteksi otomatis vim dengan meletakkan yang berikut ini:

if $COLORTERM == 'gnome-terminal'
  set t_Co=256
endif

di ~/.vimrc Anda.

Catatan: jika Anda menggunakan layar GNU, ia akan dengan senang hati memakan kode 256 warna itu dan mengubahnya menjadi 16 warna dasar. Perbaikan yang lebih baik adalah mengubah TERM ke xterm-256color sebelum meluncurkan layar/vim.

Pembaruan untuk 2017: jika Anda memiliki Vim yang cukup baru (7.4.1799 atau yang lebih baru), dan emulator terminal yang cukup canggih (xterm, atau gnome-terminal berdasarkan pada versi VTE yang cukup baru), Anda dapat :set termguicolors dan terminal vim akan menggunakan warna 24-bit penuh seperti yang didefinisikan oleh tema vim Anda menggunakan highlight guifg=#rrggbb guibg=#rrggbb.

78
Marius Gedminas

Solusi yang lebih umum adalah menginstal istilah tipe "xterm-256color". Dalam 10,04 saya pikir itu diinstal secara default. Sebelumnya Anda harus menginstal "ncurses-term" untuk mendapatkannya.

Kemudian setel jenis istilah dalam .bashrc dengan sesuatu seperti berikut ini:

if [ -n "$DISPLAY" -a "$TERM" == "xterm" ]; then
    export TERM=xterm-256color
fi

Jika Anda lebih suka hanya memiliki 256 warna kemampuan untuk program tertentu (mungkin itu membingungkan beberapa orang lain) gunakan sebagai gantinya:

TERM=xterm-256color myprogram

dan mungkin mengaturnya sebagai alias untuk program.

Kemudian periksa kemampuan warna terminal Anda dengan:

$ tput colors
256

Anda mungkin masih memerlukan pengaturan vim di atas agar vim mengenalinya. Sebagian besar aplikasi akan mengenali 256 warna secara otomatis (jika mereka dapat menggunakannya).

Emacs juga memiliki tema warna yang jauh lebih baik dengan 256 warna. Untuk memeriksa apakah 256-warna mampu berjalan:

M-x list-colors-display

256colors.pl adalah skrip Perl yang akan menampilkan semua warna di terminal Anda.

44
Dave Jennings

Cukup sertakan baris di bawah ini ke dalam $HOME/.bashrc Anda (lebih disukai di baris terakhir file):

export TERM="xterm-256color"

Dan simpan itu. Setelah itu, restart terminal gnome Anda. Perubahan ini akan tersedia tidak hanya dalam vim, tetapi untuk semua aplikasi terminal Anda.

Untuk memeriksa apakah itu berfungsi, jalankan ini sedikit script :

#!/usr/bin/env python
# Copyright (C) 2006 by Johannes Zellner, <[email protected]>
# modified by [email protected] to fit my output needs
# modified by [email protected] to fit my output needs

import sys
import os

def echo(msg):
    os.system('echo -n "' + str(msg) + '"')

def out(n):
    os.system("tput setab " + str(n) + "; echo -n " + ("\"% 4d\"" % n))
    os.system("tput setab 0")

# normal colors 1 - 16
os.system("tput setaf 16")
for n in range(8):
    out(n)
echo("\n")
for n in range(8, 16):
    out(n)

echo("\n")
echo("\n")

y=16
while y < 231:
    for z in range(0,6):
        out(y)
        y += 1

    echo("\n")


echo("\n")

for n in range(232, 256):
    out(n)
    if n == 237 or n == 243 or n == 249:
        echo("\n")

echo("\n")
os.system("tput setaf 7")
os.system("tput setab 0")

Setelah itu, Anda akan melihat sesuatu seperti berikut (tergantung pada tema terminal gnome Anda):

terminal

36
crncosta

Nah, Anda selalu dapat mengkonfigurasi Gvim agar terlihat seperti Vim. Anda hanya perlu membuat file ~/.gvimrc dan rekatkan di dalamnya trik penyesuaian ini:

set guioptions-=r  " no scrollbar on the right
set guioptions-=l  " no scrollbar on the left
set guioptions-=m  " no menu
set guioptions-=T  " no toolbar

Saya tidak berpikir ini menyelesaikan masalah Anda, tetapi siapa yang tahu ;-)

1
wassimans

Saya membuat profil terpisah untuk Vim yang menggunakan warna solid dan buram di latar belakang. Saya hanya secara manual beralih ke itu setiap kali saya menggunakan Vim. Tidak yakin apakah ada metode yang lebih baik. Saya ingin berpikir begitu.

0
DLH