Ich habe mein tmux für die Verwendung eingerichtet screen-256colors
und es funktioniert hervorragend mit vim.
Wenn ich jedoch von tmux aus eine SSH-Verbindung zu einem Remote-Host herstelle, screen-256colors
wird dieser nicht erkannt und ich erhalte Fehlermeldungen wie diese:
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'
Anders als das Bearbeiten jeder Fernbedienung .bashrc
(ähnlich wiedieser VorschlagTERM
), gibt es eine Möglichkeit, dies auf dem Remote-Host korrekt und automatisch einzustellen ?
Antwort1
In den meisten Fällen müssen Sie die erforderlichenTermininfoBeschreibungen auf dem Remote-Host. Mit Terminfo legen Linux-Programme fest, wie mit einem bestimmten Terminal verfahren werden soll (welche Steuercodes gesendet werden sollen).
Unter Debian oder Ubuntu benötigen Sie beispielsweise normalerweise das ncurses-base
Paket (das Terminfo-Daten für alle „etablierten“ Terminalemulatoren sammelt).
Andernfalls können Sie die Terminfo-Daten für bestimmte Terminals manuell kopieren:
Geben Sie auf dem lokalen System die Beschreibung im Textformat aus:
infocmp xterm-256color > xterm-256color.ti infocmp screen-256color > screen-256color.ti
Kopieren Sie die Dateien auf den Remote-Host und kompilieren Sie sie erneut:
tic xterm-256color.ti tic screen-256color.ti
Unter Linux werden die Beschreibungen in gespeichert ~/.terminfo
. (Beachten Sie, dass dieser Speicherort seit den letzten Updates von 2023nichtkann nicht mehr von „setuid“-Programmen gelesen werden, obwohl diese im Allgemeinen selten sind.)
infocmp
und tic
sind Teil derAbonnierenoderncurses-binPakete in den meisten Linux-Distributionen sowie den meisten BSDs, dieAbonnieren(unter BSDs gibt es allerdings möglicherweise keine Datenbank pro Benutzer).
Antwort2
Ich habe dies in meiner .bashrc:
alias ssh='TERM=screen ssh'