Utilizzando combinazioni di colori con vim e stucco


15

Sto cercando di utilizzare la combinazione di colori del deserto con VIM 7.0 su CentOS 5.6 x64 che si trova qui:

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

Ho scaricato il file e salvato nella mia ~/.vim/colorsdirectory. Dico quindi a VIM di utilizzare la combinazione di colori emettendo:

:colors desert

Dovrebbe assomigliare a questo:

inserisci qui la descrizione dell'immagine

Comunque ottengo questo:

inserisci qui la descrizione dell'immagine

Sto accedendo a questo server come un utente normale (non rooto sudo) usando PuTTY 0.60 e ho impostato le seguenti opzioni in Window -> Colours:

Consenti al terminale di specificare i colori ANSI: selezionato
Consenti al terminale di utilizzare la modalità 256 colori - selezionata
Il test in grassetto ha un colore diverso - controllato
Tentativo di utilizzare le tavolozze logiche - non selezionato
Usa colori di sistema - deselezionato

Se sudoeseguo l'accesso o rootprovo lo stesso, non ottengo alcun colore diverso dal testo bianco su sfondo nero.

Questi schemi sono principalmente rivolti a gVIM e PuTTY non è in grado di visualizzare questi colori?

Ho cercato su google un po 'e mi sono imbattuto in articoli come questo ma non sembrano funzionare.

Risposte:


22

Di default, PuTTY si presenta come xterm. Il database terminfo , usato da vari programmi per determinare le capacità del terminale, dice xtermsupporta solo otto colori:

$ infocmp -1L xterm | grep max_colors

Ciò significa che anche se la versione di Xterm fa supporto modalità a 256 colori, programmi non sapere.

  • La soluzione più semplice è impostare la variabile di ambiente $ TERM su xterm-256color.

    (Nel vostro ~ / .profile, è possibile utilizzare:
    if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi)

  • Puoi dire a PuTTY di identificarsi sempre come xterm-256color, tramite Configurazione → Connessione → Dati → Stringa di tipo terminale .

    Nota: se si utilizza # 1 o # 2 e ci si connette a un server che non dispone della voce terminfo appropriata, tutti i programmi TUI verranno interrotti.

  • Puoi anche impostare l' 't_Co'opzione in vim in modo 256da sovrascrivere il valore terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Oppure potresti modificare il database terminfo .

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

    La voce aggiornata verrà mantenuta in ~/.terminfo.


Risposta eccellente. È meglio, ma ho la sensazione che 256 colori non siano sufficienti per rendere queste tonalità pastello. Hai idea del perché non ottengo alcun colore quando accedo come root?
Kev

1
@Kev: 1) La modalità 256 colori è la migliore che puoi ottenere su un emulatore di terminale compatibile con VT100. (Ho sentito che KDE Konsole ha il supporto per il vero colore, ma è molto non standard.) 2) Quando accedi come root, ottieni una home directory separata e anche una separata ~/.vim/colors.
user1686

1
@Kev: Perché vi non ha combinazioni di colori o evidenziazione della sintassi - o niente tranne le funzioni di base originali. (Vim è "Vi Improved" dopo tutto.)
user1686

1
vi --versiondice che è vim, quindi è un vim ridotto per farlo sembrare vi? Scusate se questa è una domanda stupida, sono passati anni da quando ho lavorato con unix in rabbia (scatole SCO Unix con porte seriali) e c'era solo vi (real vi).
Kev,

1
Una specie di. Quando esegui vim come " vi", inizia in una modalità di "compatibilità", comportandosi il più possibile come vi. Non conosco CentOS, quindi non sono sicuro che si tratti solo di una modalità o di una build ridotta completamente separata. (La mia distribuzione confeziona invece il vero vi ...)
user1686
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.