tic no se lee desde STDIN y segfaults cuando se agrega terminfo para admitir las cursivas en tmux

5

Intento seguir estas instrucciones para agregar soporte de cursiva a tmux.

1) Intenté ejecutar copiar y pegar y ejecutar este 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,

pero eso me da:

tic: Can't open -

Supongo que esto se debe a que tic de OS X no admite la lectura de stdin .

2) Luego intenté guardar el término en un archivo temporal llamado tmux.terminfo y lo ejecuté usando 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,

Sin embargo, recibo este mensaje de error

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

3) También intenté ejecutar tic sin el indicador -x , para que no trate las capacidades desconocidas como definidas por el usuario.

Eso me da esto:

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

Estoy en OS X 10.11.6.

    
pregunta Prashanth Chandra 14.08.2016 - 06:11

2 respuestas

6

Así que esto funciona para mí, aviso que edité use como @mtklr sugirió:

# 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,

Entonces tic -x tmux.terminfo

No debería tener errores

Luego se agrega a .tmux.conf:

set -g default-terminal "tmux-256color"
set -as terminal-overrides ',xterm*:sitm=\E[3m'
    
respondido por el Bret Fisher 14.08.2016 - 23:15
1

La solución anterior no me funcionó, sin embargo, esto sí:

1. Crea dos archivos:

Archivo 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,

Archivo 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. tícalos a ambos

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

3. Dígale a su terminal que use xterm y tmux para usar tmux con anulaciones.

Averigüe cómo establecer la variable $ TERM de sus terminales en xterm-256color-italic . En iTerm está en Prefs - > perfiles - > Terminal - > Tipo de terminal de informe.

En tu archivo .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. Prueba de cursiva y color

# 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";
}'

Si entiendo correctamente, tmux depende de un entorno de terminal externo para representar correctamente el texto. Esto significa que necesita traducir / anular ciertos comandos.

fuente: enlace

    
respondido por el IanEdington 18.08.2017 - 06:53

Lea otras preguntas en las etiquetas