tic non legge da STDIN e segfaults quando si aggiunge terminfo per supportare il corsivo in tmux

5

Sto cercando di seguire queste istruzioni per aggiungere il supporto in corsivo a tmux.

1) Ho provato a eseguire il copia-incolla e l'esecuzione di questo comando

cat <<EOF|tic -x -
    tmux|tmux terminal multiplexer,
        ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
        use=xterm+tmux, use=screen,

    tmux-256color|tmux with 256 colors,
        use=xterm+256setaf, use=tmux,

ma questo mi dà:

tic: Can't open -

Suppongo che ciò sia dovuto al fatto che la tic di OS X non supporta la lettura da stdin .

2) Ho quindi provato a salvare il terminfo in un file temporaneo chiamato tmux.terminfo e lo ho eseguito utilizzando tic -x tmux.terminfo

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

tmux-256color|tmux with 256 colors,
    use=xterm+256setaf, use=tmux,

Tuttavia, ricevo questo messaggio di errore

[1]    32091 segmentation fault  tic -x tmux.terminfo

3) Ho anche provato a eseguire tic senza il flag -x , in modo che non tratti le funzionalità sconosciute come definite dall'utente.

Questo mi dà questo:

"tmux.terminfo", line 2, col 62, terminal 'tmux': unknown capability 'Ms'
[1]    35607 segmentation fault  tic tmux.terminfo

Sono su OS X 10.11.6.

    
posta Prashanth Chandra 14.08.2016 - 06:11
fonte

2 risposte

6

Quindi questo funziona per me, nota che ho modificato use come suggerito da @mtklr:

# A screen-256color based TERMINFO that adds the escape sequences for italic.
# run to add to term db: tic tmux.terminfo
tmux|tmux terminal multiplexer,
  ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
  use=xterm, use=screen,

tmux-256color|tmux with 256 colors,
  use=xterm-256color, use=tmux,

Then tic -x tmux.terminfo

Non dovrebbe contenere errori

Quindi aggiunto a .tmux.conf:

set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'
    
risposta data 14.08.2016 - 23:15
fonte
1

La soluzione di cui sopra non ha funzionato per me, tuttavia, questo ha fatto:

1. Crea due file:

File xterm-256color-italic.terminfo :

# A xterm-256color based TERMINFO that adds the escape sequences for italic.
xterm-256color-italic|xterm with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,
  use=xterm-256color,

File tmux-256color-italic.terminfo :

# A xterm-256color based TERMINFO that adds the escape sequences for italic.
tmux-256color-italic|tmux with 256 colors and italic,
  sitm=\E[3m, ritm=\E[23m,
  use=xterm-256color,

2. li tic entrambi

tic xterm-256color-italic.terminfo
tic tmux-256color-italic.terminfo

3. Dì al tuo terminale di usare xterm e tmux per usare tmux con le sostituzioni.

Scopri come impostare i tuoi terminali $ TERM variabile su xterm-256color-italic . In iTerm è in Preferenze - > profili - > Terminale - > Segnala tipo di terminale.

Nel tuo file .tmux.conf :

# tmux display in 256 colours
set -g default-terminal "tmux-256color-italic"
#  enable terminal compatibility with outside terminal
set-option -ga terminal-overrides ",xterm-256color-italic:Tc"

4. Prova per corsivo e colore

# Test Italics
echo 'tput sitm'italics'tput ritm'
# Test Colour (should be smooth gradient)
awk 'BEGIN{
    s="/\/\/\/\/\"; s=s s s s s s s s s s s s s s s s s s s s s s s;
    for (colnum = 0; colnum<256; colnum++) {
        r = 255-(colnum*255/255);
        g = (colnum*510/255);
        b = (colnum*255/255);
        if (g>255) g = 510-g;
        printf "3[48;2;%d;%d;%dm", r,g,b;
        printf "3[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s3[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

Se capisco correttamente tmux dipende da un ambiente terminale esterno per rendere il testo correttamente. Ciò significa che ha bisogno di tradurre / sovrascrivere determinati comandi.

fonte: link

    
risposta data 18.08.2017 - 06:53
fonte

Leggi altre domande sui tag