He configurado mi tmux para usarlo screen-256colors
y funciona muy bien con vim.
Sin embargo, cuando hago ssh a un host remoto desde tmux, screen-256colors
no se reconoce, por lo que recibo errores como este:
E558: Terminal entry not found in terminfo 'screen-256color' not known. Available builtin terminals are:
builtin_ansi
builtin_xterm
builtin_iris-ansi
builtin_dumb defaulting to 'ansi'
Además de editar cada control remoto .bashrc
(de manera similar aesta sugerencia), ¿hay alguna forma de configurar TERM
correcta y automáticamente en el host remoto?
Respuesta1
En la mayoría de los casos es necesario instalar lo necesario.información terminológicadescripciones en el host remoto. Terminfo es lo que utilizan los programas de Linux para determinar cómo tratar con un terminal en particular (qué códigos de control enviar).
Por ejemplo, en Debian o Ubuntu normalmente necesitas el ncurses-base
paquete (que recopila datos terminfo para todos los emuladores de terminal "establecidos").
En su defecto, puede copiar manualmente los datos de terminfo para terminales específicos:
En el sistema local, vuelque la descripción al formato de texto:
infocmp xterm-256color > xterm-256color.ti infocmp screen-256color > screen-256color.ti
Copie los archivos al host remoto y compílelos nuevamente:
tic xterm-256color.ti tic screen-256color.ti
En Linux, las descripciones se almacenarán en formato ~/.terminfo
. (Tenga en cuenta que a partir de las actualizaciones recientes de 2023, esta ubicaciónnoser leídos por programas "setuid", aunque generalmente son raros).
infocmp
y tic
son parte delmaldicionesoncurses-binpaquetes en la mayoría de las distribuciones de Linux, así como en la mayoría de los BSD que utilizanmaldiciones(aunque en BSD es posible que no haya una base de datos por usuario).
Respuesta2
Tengo esto en mi .bashrc:
alias ssh='TERM=screen ssh'