Der GNU-Bildschirm beeinflusst die Anzeige meines Terminals

2798
Brian

Ich verwende urxvt und laufe Bildschirm. Meine Ausgaben:

  • Unterstreichen - Einige der von mir ausgeführten Skripte haben farbige Ausgaben. Sie sind in Ordnung, wenn ich nur durch urxvt gehe, aber wenn sie auf dem Bildschirm sind, sind sie unterstrichen und es ist schwierig zu lesen
  • Scrollback - Beim Wechseln zwischen Fenstern auf dem Bildschirm und Ausführen von Befehlen wird der Scrollback für jedes Fenster durcheinander gebracht. Anstatt nur das Scrollback für das aktuelle Fenster zu sein, werden alle Scrollbacks kombiniert. Wenn ich also von vim zu einem anderen Fenster gehe und nach oben scrolle, sehe ich mein vim-Fenster.
  • Quiming vim - Wenn ich vim in nur urxvt beendet habe, wird der Editor ausgeblendet, und ich kann die Aufforderungen und Befehle sehen, die ich ausgeführt habe, bevor ich vim aufrief. Wenn ich vim beendet habe, bekomme ich eine Eingabeaufforderung unter dem vim-Editor. Ich möchte, dass der Editor ausgeblendet wird, wenn er nicht urxvt ausführt.

Irgendwelche Ideen?

# terminfo and termcap for nice 256 color terminal  # allow bold colors - necessary for some reason attrcolor b ".I"   # erase background with current bg color  defbce "on"   #terminfo rxvt-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' #terminfo screen 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'  # Skip the startup message startup_message off  term xterm  screen  title VIM  screen ssh bcooper@loki  title Loki  screen ssh ... title Logs  screen  title Mac  select 1 select 0  hardstatus alwayslastline hardstatus string '%{= kG}[ %%H %][%= %{=kw}%?%-Lw%?%(%%n*%f%t%?(%u)%?%)%%?%+Lw%?%?%= %][%%Y-%m-%d %%c %]'  bind ( eval "writebuf" "exec sh -c 'pbcopy < /tmp/screen-exchange'" bind ")" eval "exec sh -c 'pbpaste > /tmp/screen-exchange'"   #Use the alternate screen - helps with quiting vim and not messing up current window altscreen on 

EINSTELLUNGEN - Local Machine

declare -x COLORFGBG="15;0" declare -x COLORTERM="rxvt" declare -x COMMAND_MODE="unix2003" declare -x DISPLAY="/tmp/launch-kxXxmI/org.x:0" declare -x OLDPWD declare -x declare -x PS1="[\\W]\$ " declare -x SHELL="/bin/bash" declare -x SHLVL="2" declare -x SSH_AUTH_SOCK="/tmp/launch-QMhdZD/Listeners" declare -x TERM="xterm" declare -x TMPDIR="/var/folders/Ot/Ot3uMpWLF-aFeojPSVbhHU+++TI/-Tmp-/" declare -x USER="briancooper" declare -x WINDOWID="10485766" declare -x X11_PREFS_DOMAIN="org.x.X11" declare -x __CF_USER_TEXT_ENCODING="0x1F5:0:0" 

Lokaler Computer mit Bildschirm

declare -x Apple_PubSub_Socket_Render="/tmp/launch-cnvvgY/Render" declare -x COLORFGBG="15;0" declare -x COLORTERM="rxvt" declare -x COMMAND_MODE="unix2003" declare -x DISPLAY="/tmp/launch-kxXxmI/org.x:0" declare -x OLDPWD declare -x PS1="[\\W]\$ " declare -x SHELL="/bin/bash" declare -x SHLVL="3" declare -x SSH_AUTH_SOCK="/tmp/launch-QMhdZD/Listeners" declare -x STY="491.ttys000.brian-coopers-macbook-pro-2" declare -x TERM="xterm" declare -x TERMCAP="SC|xterm|VT 100/ANSI X3.64 virtual terminal:\\ :DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:UP=\\E[%dA:bs:bt=\\E[Z:\\ :cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:ct=\\E[3g:\\ :do=^J:nd=\\E[C:pt:rc=\\E8:rs=\\Ec:sc=\\E7:st=\\EH:up=\\EM:\\ :le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E)0:\\ :li#57:co#212:am:xn:xv:LP:sr=\\EM:al=\\E[L:AL=\\E[%dL:\\ :cs=\\E[%i%d;%dr:dl=\\E[M:DL=\\E[%dM:dc=\\E[P:DC=\\E[%dP:\\ :im=\\E[4h:ei=\\E[4l:mi:IC=\\E[%d@:ks=\\E[?1h\\E=:\\ :ke=\\E[?1l\\E>:vi=\\E[?25l:ve=\\E[34h\\E[?25h:vs=\\E[34l:\\ :ti=\\E[?1049h:te=\\E[?1049l:us=\\E[4m:ue=\\E[24m:so=\\E[3m:\\ :se=\\E[23m:mb=\\E[5m:md=\\E[1m:mr=\\E[7m:me=\\E[m:ms:\\ :Co#8:pa#64:AF=\\E[3%dm:AB=\\E[4%dm:op=\\E[39;49m:AX:\\ :vb=\\Eg:G0:as=\\E(0:ae=\\E(B:\\ :ac=\\140\\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\\ :po=\\E[5i:pf=\\E[4i:Km=\\E[M:k0=\\E[10~:k1=\\EOP:k2=\\EOQ:\\ :k3=\\EOR:k4=\\EOS:k5=\\E[15~:k6=\\E[17~:k7=\\E[18~:\\ :k8=\\E[19~:k9=\\E[20~:k;=\\E[21~:F1=\\E[23~:F2=\\E[24~:\\ :F3=\\E[1;2P:F4=\\E[1;2Q:F5=\\E[1;2R:F6=\\E[1;2S:\\ :F7=\\E[15;2~:F8=\\E[17;2~:F9=\\E[18;2~:FA=\\E[19;2~:kb=^H:\\ :K2=\\EOE:kB=\\E[Z:kF=\\E[1;2B:kR=\\E[1;2A:*4=\\E[3;2~:\\ :*7=\\E[1;2F:#2=\\E[1;2H:#3=\\E[2;2~:#4=\\E[1;2D:%c=\\E[6;2~:\\ :%e=\\E[5;2~:%i=\\E[1;2C:kh=\\E[1~:@1=\\E[1~:kH=\\E[4~:\\ :@7=\\E[4~:kN=\\E[6~:kP=\\E[5~:kI=\\E[2~:kD=\\E[3~:ku=\\EOA:\\ :kd=\\EOB:kr=\\EOC:kl=\\EOD:km:" declare -x TMPDIR="/var/folders/Ot/Ot3uMpWLF-aFeojPSVbhHU+++TI/-Tmp-/" declare -x WINDOW="0" declare -x WINDOWID="8388614" declare -x X11_PREFS_DOMAIN="org.x.X11" declare -x __CF_USER_TEXT_ENCODING="0x1F5:0:0" 

Remote-Maschine über SSH

declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LS_COLORS="no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:" declare -x OLDPWD declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="10.1.0.110 50262 22" declare -x SSH_CONNECTION="10.1.0.110 50262 10.1.2.20 22" declare -x SSH_TTY="/dev/pts/9" declare -x TERM="xterm" 

Remote-Maschine über SSH mit Bildschirm

declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LS_COLORS="no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:" declare -x OLDPWD declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="10.1.0.110 50147 22" declare -x SSH_CONNECTION="10.1.0.110 50147 10.1.2.20 22" declare -x SSH_TTY="/dev/pts/4" declare -x TERM="xterm" 
5

2 Antworten auf die Frage

3
Dennis Williamson

Versuchen TERMSie für den ersten und dritten Punkt, screendie gleichen Einstellungen vorzunehmen, wenn Sie es nicht tun (oder wenn es bereits derselbe ist, versuchen Sie es auf "Bildschirm" zu setzen).

Bearbeiten:

Damit vim beendet wird und der Inhalt des Bildschirms angezeigt wird, bevor Sie ihn gestartet haben, während Sie unter screen laufen, fügen Sie altscreenIhrer ~/.screenrcDatei hinzu.

Edit 2:

Um unterstrichenen Text farbig darzustellen, fügen Sie dies Ihrer ~/.screenrcDatei hinzu:

attrcolor u "-u R" 

Das "R" steht für knalliges Rot. Kleinbuchstaben wären normal. "B" ist blau usw.

Bearbeiten Sie 3:

Um die überflüssige Unterstreichung zu beenden, fügen Sie dies Ihrer ~/.screenrcDatei hinzu:

attrcolor d -d 

Das erste "d" steht für Default. Das "-d" bedeutet das "dim" Attribut entfernen.

Ich habe versucht, meinen Begriff in screen, xterm zu ändern oder überhaupt nicht einzustellen. Alles mit dem gleichen Ergebnis. Ich werde mein aktuelles screenrc posten. Danke für die Hilfe. Brian vor 13 Jahren 0
@ Brian: Ihre Shell-Startdatei (zB `~ / .bashrc`) könnte` TERM` überschreiben. Führen Sie ein "Echo TERM" aus, während Sie "screen" ausführen und nicht und sehen Sie, ob es das ist, was Sie erwarten. Dennis Williamson vor 13 Jahren 0
Scheint nicht zu sein. Wenn ich xterm oder screen in meinem screenrc verwende, ist es das, worauf es eingestellt ist, sobald ich screen laufen lasse. Vor dem Start des Bildschirms ist mein TERM auf xterm gesetzt. Brian vor 13 Jahren 0
@ Brian: Siehe meine Bearbeitung. Dennis Williamson vor 13 Jahren 0
Das scheint auch nicht zu funktionieren. Ich bin mir nicht sicher, ob es wichtig ist, aber der unterstrichene Text wird sichtbar, wenn ich an einen anderen Rechner gehe. Danke für deine Hilfe. Brian vor 13 Jahren 0
@ Dann ist es der TERM usw. auf der Maschine, die die Dinge beeinflusst. Dennis Williamson vor 13 Jahren 0
Beim Vergleich der TERM-Einstellung habe ich diese SSH-Verbindung verwendet. Wenn ich ssh ohne den Bildschirm für diesen Server verwende und einen Erstellungsbefehl ausführt, wird die Ausgabe in grünen und blauen Farben dargestellt, aber nicht unterstrichen. Wenn ich nach dem Ausführen des Bildschirms auf meinem lokalen Computer dasselbe mache, sind die Farben immer noch vorhanden, aber alles ist unterstrichen. Brian vor 13 Jahren 0
@Brian: Vielleicht ist es hilfreich, ein Raster zu deiner Frage hinzuzufügen, das Maschine A, Maschine A mit Bildschirm, Maschine B über ssh und Maschine B local (wenn möglich) auf einer Achse und 'TERM' und die Ausgabe von 'tput' zeigt Setaf 4 | hexdump -C` (nur die druckbaren Zeichen und Platzhalter - es wird ungefähr wie ". [34m" oder ". [38; 5; 4m" aussehen - verwenden Sie "od -c", wenn Sie nicht über "hexdump" verfügen) das andere. Sind sowohl Blau als auch Grün unterstrichen? Bekommen Sie auch die Farbe, wenn sie unterstrichen sind? Was ist mit anderen Farben (versuchen Sie es mit Rot: `tput setaf 1; echo hallo; tput sgr0`)? Dennis Williamson vor 13 Jahren 0
Der Befehl tput hatte auf dem Remote-Computer die gleiche Ausgabe, unabhängig vom verwendeten Bildschirm - |. [34m | . Sowohl der blaue als auch der grüne Text sind unterstrichen und behalten diese Farbe, wenn sie unterstrichen sind. Wenn ich den Befehl red tput verwende, wird das rote Wort Hello ausgegeben, nicht unterstrichen. Dies geschieht unabhängig vom verwendeten Bildschirm. Brian vor 13 Jahren 0
@Brian: Wenn Sie Ihr Skript durch `hexdump 'pfeifen, erhalten Sie` ^ [[4m` (Fluchtlasche 4 m) irgendwo in der Ausgabe? Das ist "Tput Smul", das sich unterstützend auswirkt. Suchen Sie auch nach 1, 5 oder 7 anstelle von 4 (Fett, Blinzeln und smso (Standout)). Ich finde es seltsam, dass * sowohl * Blau als auch Grün unterstrichen sind, aber manuelles Rotieren nicht. Versuchen Sie auch den roten Test wie oben, jedoch mit blau (4), und prüfen Sie, ob er manuell unterstrichen wird. Dennis Williamson vor 13 Jahren 0
Wenn Sie "Ihr Skript" sagen, meinen Sie die Exportanweisung, die die Deklarationsanweisungen generiert. Wenn ja, habe ich es durch hexdump -C geführt und mit ^ [[. Brian vor 13 Jahren 0
Ich glaube, ich habe herausgefunden, was du mit meinem Drehbuch gemeint hast. Ich führe einige Phing-Befehle aus, und mit dieser Ausgabe habe ich Probleme. Ich ging zurück und rannte durch Hexdump und sah keinen dieser Charaktere. Ich habe diesen Link gefunden (http://phing.info/trac/ticket/222). Dies könnte nur ein Problem zwischen Phing und Bildschirm sein. Ich weiß nicht genau was genau ist, aber jemand erwähnt es im Link. Danke nochmal für all deine Hilfe. Brian vor 13 Jahren 0
@ Brian: Vergleiche dein Phing `defaults.properties` mit [hier] (http://www.phing.info/trac/browser/trunk/classes/phing/listener/defaults.properties). Siehe auch: [this] (http://www.phing.info/trac/changeset/436). Ich konnte dein Problem wiederholen. Mit dem folgenden Befehl in `screen` bekam ich Unterstreichungen. Ohne Bildschirm: keine Unterstreichungen. `echo -e" \ e [2; 32mHello \ e [m "` Ändern Sie die ersten beiden in eine Null und die Unterstreichung geht weg. Bearbeiten Sie `classes / phing / listener / AnsiColorLogger.php` und ändern Sie in der __construct () - Funktion` DIM` in `NORMAL`. Nun sollten Sie OK sein. Oder aktualisieren Sie auf 2.4 oder höher. Was ver. hast du? Dennis Williamson vor 13 Jahren 1
Wow, viele gute Infos, Dennis. Leider kann ich das nicht beheben. Der Grund, warum ich ssh zu diesem Server benutze, ist, dass es sich um unseren Webserver handelt, und wir haben jeweils ein eigenes Setup auf diesem Server für die Entwicklung. Wir haben also nur eine Kopie von Phing. Wir betreiben derzeit Version 2.32. Es ist zweifelhaft, ob der Administrator die Datei für die beiden hier verwendeten Bildschirmbenutzer anpassen wird. Ich freue mich sehr über Ihre Hilfe. Ich habe durch diesen ganzen Prozess eine Menge gelernt. Danke noch einmal. Brian vor 13 Jahren 0
@ Brian: Siehe Bearbeiten 3. Ich denke, wir haben vielleicht die Unterstreichungen geschlagen! Dennis Williamson vor 13 Jahren 1
Genial! Danke für die Hilfe dazu. Ich würde dir mehr Stimmen geben, wenn ich könnte. Nochmals vielen Dank für die Hilfe. Ich habe durch diesen ganzen Prozess viel gelernt. Brian vor 13 Jahren 0
1
garyjohn

Hier ist eine teilweise Antwort.

  • Scrollback - Um in einem Bildschirmfenster zurückzublättern, geben Sie Folgendes ein Ctrl-A [. Anschließend können Sie mit den Cimerbewegungs- und Bildlaufbefehlen im Vim-Stil durch den Bildlaufpuffer zurückkehren. Geben Sie einfach <esc> ein, um den Modus zu verlassen.
  • Vim verlassen - Sie haben diese Frage hier bereits gestellt . Haben diese Antworten nicht funktioniert?
Danke, dass Sie mich wieder auf diese Frage hingewiesen haben. Ich war überall und habe vergessen, dass ich es gefragt habe. Das Problem mit Quiting vim wurde behoben. Über den Scrollback - ich verwende viel Strg-A [viel. Ich glaube, ich habe nie versucht, es zu benutzen, wenn ich mit der Maus gescrollt habe. Ich muss sicherstellen, dass ich immer mit der Tastatur scrolle. Vielen Dank. Brian vor 13 Jahren 0