Come mostrare il corsivo in vim in iTerm2

6

La cara Solarized combinazione di colori sembra applicare una faccia in corsivo per i commenti, ma quando la sto usando in vim in iTerm2, non è così.

Quindi, tutto ciò che include i commenti viene visualizzato in faccia (normale) romana. Anche se seleziono il font Menlo, che ha una faccia in corsivo che posso vedere nella finestra delle preferenze di iTerm2, i commenti sono resi come Roman.

Insieme al fatto che i commenti sono in grigio chiaro e il testo normale in bianco (non molto chiaro), i commenti diventano piuttosto difficili da distinguere dal testo normale.

Per me questo è un difetto nella combinazione di colori altrimenti eccezionale. Ho fatto qualche ricerca ma il consiglio è vecchio e non risolvo il problema. Sto usando OS X 10.6 Sierra su un MacBook Air.

    
posta Aminopterin 27.12.2016 - 11:36
fonte

1 risposta

15

Devi aggiornare il tuo file TERMINFO .

Grazie a video di wincent e ai suoi pagine github
Guarda il video e guarda le sue pagine github, sono eccellenti.

Ho memorizzato la seguente nota sul mio HD:

Possiamo corsivo nel terminale.

Funziona in iTerm e Terminal.

Dobbiamo adattare il database terminfo per dirgli di mostrare il corsivo.

Crea un file di testo semplice che contenga quanto segue:

xterm-256color|xterm with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,
  use=xterm-256color,

Salvalo come xterm-256color.terminfo.txt

Quindi esegui il seguente comando:

tic -o ~/.terminfo xterm-256color.terminfo.txt

Questo creerà una directory ~/.terminfo/some_arbitrary_number/ , e all'interno di quella directory c'è un file xterm-256color .

Che cosa fa secondo la manpage:

       The command tic translates a terminfo file from source format into com-
       piled  format.   The  compiled  format  is  necessary  for use with the
       library routines in ncurses(3X).

       The results are  normally  placed  in  the  system  terminfo  directory
       /usr/share/terminfo.  There are two ways to change this behavior.

       First, you may override the system default by setting the variable TER-
       MINFO in your shell environment to a valid (existing) directory name.

       Secondly, if tic cannot get access to /usr/share/terminfo or your  TER-
       MINFO  directory,  it  looks for the directory $HOME/.terminfo; if that
       directory exists, the entry is placed there.

       Libraries that read terminfo entries are expected to check for  a  TER-
       MINFO  directory first, look at $HOME/.terminfo if TERMINFO is not set,
       and finally look in /usr/share/terminfo.

       -o dir   Write  compiled  entries to given directory.  Overrides the TER-
                MINFO environment variable.

Quindi con il comando dato stiamo scrivendo una nuova voce terminfo nella directory ~/.terminfo nascosta. Accetta le funzionalità della voce xterm-256color esistente (da /usr/share/terminfo/ ) e aggiunge la modalità in corsivo.

Per verificare che il terminale faccia la cosa giusta:

  • con pesce:

    echo (tput sitm)'italics' (tput ritm) (tput smso)'standout'(tput rmso)
    
  • con bash o zsh:

    echo 'tput sitm'italics'tput ritm' 'tput smso'standout'tput rmso'
    

Suppongo che al momento la maggior parte dei colorimet di terminale vim non imposti il corsivo come stile. Per controllare questo:
:hi Comment se la risposta contiene cterm=italic hai finito. Se non aggiungi highlight Comment cterm=italic al tuo vimrc ( sotto imposta il tuo colorscheme).

Addendum per tmux

tmux usa i propri file terminfo, devono anche essere aggiornati per usare il corsivo.

  1. crea un file tmux.terminfo.txt che contiene

tmux|tmux terminal multiplexer, sitm=\E[3m, ritm=\E[23m, smso=\E[7m, rmso=\E[27m, use=screen,

  1. crea un file tmux-256color.terminfo.txt che contiene

tmux-256color|tmux with 256 colors, sitm=\E[3m, ritm=\E[23m, smso=\E[7m, rmso=\E[27m, use=screen-256color,

ed esegui il comando tic.

tic -o ~/.terminfo tmux-256color.terminfo.txt
e
tic -o ~/.terminfo tmux.terminfo.txt

    
risposta data 03.01.2017 - 15:40
fonte

Leggi altre domande sui tag