11 votos

Cómo mostrar cursiva en vim en iTerm2

La querida Solarizado parece aplicar una cara cursiva para los comentarios, pero cuando lo estoy utilizando en vim en iTerm2, no lo hace.

Así, todo, incluidos los comentarios, se muestran en cara romana (normal). Incluso si selecciono la fuente Menlo, que tiene una cara cursiva que puedo ver en la ventana de preferencias de iTerm2, los comentarios se muestran como romanos.

Junto con el hecho de que los comentarios aparecen en gris claro y el texto normal en blanco (no muy brillante), los comentarios resultan bastante difíciles de distinguir del texto normal.

Para mí, esto es un defecto en la combinación de colores, que por lo demás es estupenda. Hice algunas búsquedas pero los consejos son viejos y no resuelven el problema. Estoy usando OS X 10.6 Sierra en un Macbook Air.

28voto

lhagan Puntos 31

Tiene que actualizar su TERMINFO archivo.

Gracias a vídeo de wincent y su páginas de github
Mira el vídeo y echa un vistazo a sus páginas de github, son excelentes.

Tengo la siguiente nota almacenada en mi disco duro:

Podemos tener cursiva en el terminal.

Esto funciona tanto en iTerm como en Terminal.

Tenemos que adaptar la base de datos terminfo para indicarle que muestre la cursiva.

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

A continuación, ejecute el siguiente comando:

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

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

Lo que hace según la página de 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.

Así que con el comando dado estamos escribiendo una nueva entrada terminfo en el oculto ~/.terminfo directorio. Toma las capacidades de la entrada xterm-256color existente (de /usr/share/terminfo/ ) y le añade el modo 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 por el momento la mayoría de los esquemas de color de los terminales vim no establecen la cursiva como estilo. Para comprobarlo haz:
:hi Comment si la respuesta contiene cterm=italic ya está. Si no añade highlight Comment cterm=italic a su vimrc ( debajo de configuración del esquema de colores).

Apéndice para tmux

tmux utiliza sus propios archivos terminfo, también necesitan ser actualizados para utilizar cursiva.

  1. crear un tmux.terminfo.txt que contiene

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

  1. crear un tmux-256color.terminfo.txt que contiene

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

2 votos

¡Vaya! Después de hacer esto, con la prueba que diste, "italic" y "standout" ambos funcionan, pero abrir un cpp en vim no renderiza los comentarios en cursiva. ¿Es este el problema de Solarized?

2 votos

Me he dado cuenta de que la GUI de MacVim (es decir, la ventana separada que pregunta) puede mostrar fuentes en cursiva, pero si se abre en el terminal (con mvim -v ), no puede. ¿Es normal?

2 votos

Si lo haces en vim: :hi Comment ¿dice cterm=italic ? Si no Solarized no lo fija. Puede hacerlo en su vimrc con highlight Comment cterm=italic

0voto

mefryar Puntos 1

Además de actualizar mi TERMINFO Tuve que hacer otros dos cambios.

  1. Editar .vim/colors/solarized.vim como se recomienda en Solarizado nº 120 sustituir las líneas 137-157 por lo siguiente:

     if has("gui_running") || ( has("unix") && system("tput sitm") == "\033[3m" )
         let s:terminal_italic=1
     else
         let s:terminal_italic=0
     endif
  2. Editar .vimrc para añadir las siguientes líneas utilizando <Ctrl-v><Esc> para entrar en el ^[ personajes.

     " Enable italics
     set t_ZH=^[[3m
     set t_ZR=^[[23m

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X