Domanda:
Come mostrare il corsivo in vim in iTerm2
Violapterin
2016-12-27 16:36:05 UTC
view on stackexchange narkive permalink

L'amato schema di colori Solarized sembra applicare una faccia in corsivo per i commenti, ma quando lo uso in vim in iTerm2, non lo fa.

Quindi, tutto, inclusi i commenti, viene visualizzato in caratteri romani (normali). Anche se seleziono il carattere Menlo, che ha una faccia in corsivo che posso vedere nella finestra delle preferenze di iTerm2, i commenti vengono visualizzati come Roman.

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

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

Una risposta:
PeterVP
2017-01-03 20:40:22 UTC
view on stackexchange narkive permalink

Devi aggiornare il tuo file TERMINFO .

Grazie al video di wincent e alle sue pagine github
Guarda il video e guarda le sue pagine GitHub, sono eccellenti.

Ho la seguente nota memorizzata sul mio HD:

Possiamo avere il corsivo nel terminale.

Funziona sia in iTerm che in Terminal.

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

Crea un file di testo semplice che contenga quanto segue:

  xterm-256color | xterm con 256 colori e corsivo,
  sitm = \ E [3m, ritm = \ E [23m,
  usa = xterm-256color,
 

Salva 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 si trova un file xterm-256color .

Cosa fa secondo la manpage:

  Il comando tic traduce un file terminfo dal formato sorgente in comp
       formato impilato. Il formato compilato è necessario per l'uso con
       routine di libreria in ncurses (3X).

       I risultati vengono normalmente inseriti nella directory terminfo di sistema
       / usr / share / terminfo. Esistono due modi per modificare questo comportamento.

       Innanzitutto, puoi sovrascrivere l'impostazione predefinita del sistema impostando la variabile TER-
       MINFO nel tuo ambiente shell su un nome di directory valido (esistente).

       In secondo luogo, se tic non riesce ad accedere a / usr / share / terminfo o al tuo TER-
       Directory MINFO, cerca la directory $ HOME / .terminfo; se quello
       directory esiste, la voce è posizionata lì.

       Le biblioteche che leggono le voci di terminfo dovrebbero controllare
       Prima la directory MINFO, guarda $ HOME / .terminfo se TERMINFO non è impostato,
       e infine guarda in / usr / share / terminfo.

       -o dir Scrive le voci compilate nella directory specificata. Ignora il TER-
Variabile d'ambiente MINFO.
 

Quindi, con il comando dato, stiamo scrivendo una nuova voce terminfo nella directory nascosta ~ / .terminfo . Prende le capacità della voce xterm-256color esistente (da / usr / share / terminfo / ) e vi aggiunge la modalità 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`
    

Immagino che al momento la maggior parte degli schemi di colori dei terminali vim non imposti il ​​corsivo come stile. Per verificarlo:
: hi Comment se la risposta contiene cterm = italic il gioco è fatto. In caso contrario, aggiungi highlight Comment cterm = italic al tuo vimrc (below impostando il tuo schema di colori).

Addendum per tmux

tmux usa i propri file terminfo, anch'essi devono essere aggiornati per usare il corsivo.

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

tmux | multiplexer terminale tmux, 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 con 256 colori, 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

Wow!Dopo aver fatto questi, con il test che hai dato, "italic" e "standout" funzionano entrambi, ma l'apertura di un cpp in vim non rende i commenti in corsivo.È questo il problema di Solarized?
Oh!Ho notato che la GUI di MacVim (cioè la finestra separata che richiede) può visualizzare caratteri in corsivo, ma se aperta nel terminale (con `mvim -v`), non può.È normale?
Se in vim: `: hi Comment` si dice` cterm = italic`?Se non Solarized non lo imposta.Puoi farlo nel tuo vimrc con `highlight Comment cterm = italic`
FUNZIONA!!!!I MIEI COMMENTI SONO IN ITALICO ORA !!!Dirò al mondo la buona notizia !!!(Ho sempre pensato che Solarized lo impostasse di default)
Nella mia macchina (arch linux), cterm = standout mostrava * corsivo * e il comando sopra poteva visualizzare solo la parola * standout * ma in corsivo.
E non c'erano directory ~ / .terminfo e quindi nessun file in essa.Ma cos'è quella parte della directory ** 78 **?
Ho appena provato su una VM Manjaro (basata su arch) `echo \` tput sitm \ `italics \` tput ritm \ `\` tput smso \ `standout \` tput rmso \ `` e ha dato il risultato atteso (corsivo estandout) senza applicare il cerotto.Questo è un xfce4-terminal.La parte della directory 78 viene visualizzata sui 2 Mac che ho a disposizione, non sono sicuro che sia solo una cosa Mac o unix più generale.Se guardi il video di wincent, `~ / .terminfo` è una directory in cui è memorizzato il terminfo patchato.Presumibilmente all'avvio del terminale viene letto questo file, invece di quello in `/ usr / share / x / terminfo / xterm-256color`
spiegazione migliorata del comando, si spera rimosso un po 'di confusione sulle directory esistenti o meno.
Non riesco a farlo funzionare in una sessione tmux.
per tmux devi anche aggiornare le sue voci terminfo.Vedere [file di wincent] (https://github.com/wincent/wincent/tree/master/roles/terminfo/files) per le impostazioni corrette.
non è stato in grado di farlo funzionare all'interno di tmux su macos senza seguire anche https://medium.com/@dubistkomisch/how-to-actually-get-italics-and-true-colour-to-work-in-iterm-tmux-vim-9ebe55ebc2be


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...