¿Es correcto establecer la variable $ TERM manualmente?

10

Configuré la $TERMvariable agregando la línea XTerm*termName: xterm-256colora mi .Xresourcesarchivo. Cuando lo hice, no sabía exactamente qué significaba eso (estaba siguiendo una guía en línea para cambiar el aspecto xterm), pero ahora he leído un poco más y me preocupa si lo que hice estuvo mal. Específicamente, quiero saber que hay algo malo en configurar la $TERMvariable manualmente, y en caso de que sea así, ¿cómo puedo revertir mi error?

En caso de que lo necesite, estoy ejecutando Fedora 20 con xterm.

Santaru72
fuente
Esta es una pregunta de programación genérica. Depende de lo que hagas. Si puede dar por sentado un entorno de escritorio y la ausencia de conexiones remotas, podría estar bien. De lo contrario, todos los casos posibles deben procesarse con comprobación de errores.
41754
@uprego ¿Podría por favor elaborar sobre "ausencia de conexiones remotas"?
Santaru72
Es posible que esté utilizando una sesión tmux permanente con la opción de 256 colores, pero si la adjunta desde una sesión ssh, los escenarios posibles se amplían demasiado para enumerarlos. Cada aplicación tendría o no efectos deseables dependiendo de la capacidad de cada programador. Como @goldilocks señala en su respuesta, no debería ser peligroso, pero existe la diferencia entre "no debería ser" y "no puede ser".
41754
@uprego: Siendo realistas, debería haber dicho "no puedo", a menos que cuentes la salida ilegible como "peligrosa".
Ricitos

Respuestas:

7

En su mayor parte, no debe configurarlo TERMmanualmente. La variable siempre se establece automáticamente, y solo hay un conjunto limitado de circunstancias en las que el valor predeterminado es incorrecto.

Se TERMdebe hacer referencia al valor de en la base de datos terminfo del sistema (o para algunos sistemas antiguos, en la base de datos termcap ). Terminfo y Termcap asignan los tipos de terminal a la descripción de las capacidades de terminal que utilizan las aplicaciones. El valor de TERMes el tipo de terminal.

La razón principal por la que a veces puede necesitar cambiar TERMes si inicia sesión de forma remota, cuando la máquina local y la máquina remota tienen bases de datos de terminales diferentes.

Otra razón, que está relacionada con la anterior, es que a veces hay múltiples entradas similares para un terminal, con capacidades ligeramente diferentes. Esto tiende a suceder principalmente cuando aparece un nuevo terminal que es compatible con un terminal existente, pero tiene más funciones. Luego puede elegir entre usar el nombre tradicional, que todas las máquinas entienden, pero que anuncia solo las características tradicionales, o el nombre más nuevo, que anuncia todas las características nuevas pero que algunas máquinas no entenderán.

Un ejemplo de esto es xterm con 16 colores vs xterm con 256 colores. Un xterm tradicional solo admite 16 colores, así que eso es lo que xtermespecifica la base de datos del terminal. Cambiar la xtermentrada haría felices a los usuarios de las nuevas versiones de xterm, pero rompería la configuración de los usuarios de versiones anteriores de xterm que inician sesión de forma remota. Cambiar a un nuevo nombre:  xterm-256colorproporciona las capacidades más nuevas siempre que estén disponibles, pero no se reconoce si inicia sesión de forma remota en máquinas con una base de datos de terminal más antigua. Debido a que no hay una solución que pueda satisfacer a todos, tiene una opción: quedarse con xtermlos 256 colores y no obtenerlos, o usar el xterm-256colorque no funciona si inicia sesión en máquinas remotas que no lo admiten.

Dejar el valor predeterminado de xtermy configurar el termNamerecurso en xterm-256color(lo que hace que la variable de entorno TERMse establezca en el mismo valor) son, por lo tanto, dos elecciones sensatas. Ajuste TERMa valores arbitrarios no funcionaría, pero ambos xtermy xterm-256colortienen sentido.

Gilles 'SO- deja de ser malvado'
fuente
3

Configuré la variable $ TERM agregando la línea XTerm * termName: xterm-256color a mi archivo .Xresources.

Eso está bien, siempre y cuando seas consciente de lo que has hecho; la mayoría de los terminales GUI lo admiten.

También puede configurarlo desde la línea de comandos o en un script

export TERM=xterm-256color

Esto solo se aplica a ese terminal o hijos posteriores.

Un valor predeterminado portátil sería justo xterm, lo que significa compatibilidad con 16 colores. Si tiene un conjunto de 256 colores y su terminal no lo admite, ejecutar aplicaciones TUI de 256 colores se verá raro; probablemente te darás cuenta de inmediato. Pero no debería ser peligroso.

encerrada dorada
fuente
Entonces configurar en XTerm*termName: xtermlugar de XTerm*termName: xterm-256colordebería estar bien, ¿verdad?
Santaru72
Si eso es lo que quieres, no configures nada; xtermes el valor predeterminado para xterm;) pero significa 16 colores. El punto principal del uso xterm-256colores decirle a las aplicaciones que el terminal admite 256 colores . Si no haces eso, supondrán 16 colores.
Ricitos