Quando vim viene avviato all'interno della schermata gnu, non viene colorato lo background dopo il text.
Lo schermo sembra che dovrebbe essere configurato per gestire correttamente 256 colors:
$ screen $ tput colors 256 $ echo $term xterm-256colors
OS e Shell sto usando:
$ cat /etc/redhat-release Red Hat Enterprise Linux WS release 4 (Nahant Update 9) $echo $shell /bin/tcsh
Il test di colore sembra funzionare bene tranne la fine delle righe:
:runtime syntax/colortest.vim :source %
E quando non si utilizza la schermata:
C'è qualche altra impostazione che dovrei controllare, c'è una modalità di schermo che posso forzare per consentire che i colors vengano ridisegnati correttamente?
Parzialmente basato su: tmux-e-screen-256-termine-non supportti .
Il problema si risolve quando si utilizza un termine "schermo". Per identificare correttamente 256 colors, dovrebbe essere 'screen-256colors'. Che port all'errore di seguito:
E558: Terminal entry not found in terminfo 'screen-256colors' not known. Available builtin terminals are: builtin_gui builtin_ansi builtin_xterm builtin_iris-ansi builtin_d
Per creare una voce di schermo-256colors:
infocmp screen > screen-256color.ti
Modifica (schermo-256color.ti)
# Reconstructed via infocmp from file: /usr/share/terminfo/s/screen screen|VT 100/ANSI X3.64 virtual terminal, am, km, mir, msgr, xenl, colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
a :
# Reconstructed via infocmp from file: /usr/share/terminfo/s/screen screen-256color|VT 100/ANSI X3.64 virtual terminal, am, km, mir, msgr, xenl, colors#256, cols#80, it#8, lines#24, ncv#3, pairs#64,
Ora creare il terminfo:
tic screen-256color.ti
screen
interna o tmux
, il valore di $TERM
deve iniziare con la screen
(ad es. screen
, screen-256color
) piuttosto che con xterm
.
Il problema corrente viene visualizzato a causa della differenza della capacità di eliminazione di bce
(colore di background) dei due terminali.
Le descrizioni di TERM=screen*
non contengono questa bandiera e, di conseguenza, nella screen
o nel tmux
una "chiara dal cursore alla fine della linea" la sequenza di escape dipinge con il colore di background predefinito del terminal.
D'altra parte, le descrizioni TERM=xterm*
contengono questa bandiera, e di conseguenza, la xterm
cancella utilizzando il colore di background attualmente attivo.
Nel tuo caso, vim
vede in modo errato che il terminal ha la bce
flag (a causa di TERM=xterm*
) e quindi utilizza l'operazione chiara e breve per riempire con il colore di background attivo, che apparirà correttamente direttamente sotto xterm, ma appare in modo errato screen
/ tmux
. Se lo fai correttamente TERM=screen*
, noterai la mancanza di bce
e sceglierai di emettere molti caratteri spaziali piuttosto che la sequenza "chiara alla fine della linea", che sarà corretta.