Cómo mostrar la cursiva en vim en iTerm2

6

El amado Solarized parece aplicar una cara en cursiva a los comentarios, pero cuando lo estoy usando en vim en iTerm2, no lo hace.

Por lo tanto, todo lo que incluye comentarios se muestra en la cara romana (normal). Incluso si selecciono la fuente Menlo, que tiene una cara en cursiva que puedo ver en la ventana de preferencias de iTerm2, los comentarios se representan como romanos.

Junto con el hecho de que los comentarios están en gris claro, y el texto normal en blanco (no muy brillante), los comentarios se vuelven difíciles de distinguir del texto normal.

Para mí, esto es un defecto en el esquema de color, que por lo demás es excelente. Hice algunas búsquedas pero el consejo es antiguo y no resuelve el problema. Estoy usando OS X 10.6 Sierra en una MacBook Air.

    
pregunta Aminopterin 27.12.2016 - 11:36

1 respuesta

14

Tienes que actualizar tu archivo TERMINFO .

Gracias a video de wincent y su github pages
Mira el video y mira sus páginas de github, son excelentes.

Tengo la siguiente nota almacenada en mi HD:

Podemos tener itálicas en el terminal.

Esto funciona tanto en iTerm como en Terminal.

Tenemos que adaptar la base de datos terminfo para que muestre las cursivas.

Cree un archivo de texto sin formato que contenga lo siguiente:

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

Guárdalo como xterm-256color.terminfo.txt

Luego ejecuta el siguiente comando:

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

Esto creará un directorio ~/.terminfo/some_arbitrary_number/ , y dentro de ese directorio hay un archivo xterm-256color .

Lo que hace según la página del manual:

       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.

Entonces, con el comando dado estamos escribiendo una nueva entrada de terminfo en el directorio oculto ~/.terminfo . Toma las capacidades de la entrada xterm-256color existente (de /usr/share/terminfo/ ) y le agrega el modo de cursiva.

Para comprobar que el terminal hace lo correcto:

  • con pescado:

    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'
    

Supongo que en este momento la mayoría de los esquemas de color de los terminales vim no establecen la cursiva como un estilo. Para verificar esto, haga lo siguiente:
:hi Comment si la respuesta contiene cterm=italic , ha terminado. Si no, agrega highlight Comment cterm=italic a tu vimrc ( abajo configurando tu esquema de colores).

Addendum para tmux

tmux usa sus propios archivos terminfo, también deben actualizarse para usar cursiva.

  1. crear un archivo tmux.terminfo.txt que contenga

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

  1. crear un archivo tmux-256color.terminfo.txt que contenga

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

y ejecuta el comando tic.

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

    
respondido por el PeterVP 03.01.2017 - 15:40

Lea otras preguntas en las etiquetas