webentwicklung-frage-antwort-db.com.de

Verwenden Sie das Scrollrad im GNU Bildschirm

Wie kann ich GNU screen einrichten, damit das Scrollrad der Maus im Scrollback-Puffer herumläuft? Ich habe versucht, dies mit Google zu klären, aber die meisten Treffer betrafen, wie Anwendungen innerhalb des Bildschirms das Scrollrad verwenden können .

242
JesperE

Ich glaube, Sie können Ihrem ~/.screenrc Einfach eine Zeile wie diese hinzufügen:

termcapinfo xterm* [email protected]:[email protected]

Wobei "xterm *" eine globale Übereinstimmung Ihres aktuellen BEGRIFFS ist. Um zu bestätigen, dass es funktioniert, drücken Sie ^ A ^ D, um die Verbindung zu Ihrem Bildschirm zu trennen, und drücken Sie dann screen -d -r, Um die Verbindung erneut herzustellen. Drücken Sie dann einige Male ls und versuchen Sie, einen Bildlauf zurück durchzuführen. Für mich geht das.


Was ist das für eine Magie? Schauen wir uns die Manualseiten an.

screen(1) sagt:

termcapinfo term terminal-tweaks [window-tweaks]
  [..]
  The first argument specifies which terminal(s) should be affected by this
  definition. You can specify multiple terminal names by separating them with
  `|'s. Use `*' to match all terminals and `vt*' to match all terminals that
  begin with "vt".
  [..]
  Some examples:

      termcap xterm*  LP:[email protected]

  Informs screen that all terminals that begin with `xterm' have firm
  auto-margins that allow the last position on the screen to be updated (LP),
  but they don't really have a status line (no 'hs' -  append  `@'  to turn
  entries off).  Note that we assume `LP' for all terminal names that start
  with "vt", but only if you don't specify a termcap command for that terminal.

Von termcap(5):

String capabilities
    [..]
    te   End program that uses cursor motion
    ti   Begin program that uses cursor motion
334
Pistos

Auf dem Bildschirm müssen Sie zuerst in den "Scrollback-Modus" (oder "Kopiermodus") wechseln, um im Scrollback-Puffer einen Bildlauf durchführen zu können: Tastenkombination Ctrl-aEsc, oder Ctrl-aCtrl-[. Anschließend können Sie mit den Auf - und Ab - Tasten (oder) durch den Verlauf blättern Ctrl-bCtrl-f eine Seite verschieben).

In diesem Modus sollte Ihr Mausrad auch funktionieren, wenn es in anderen Apps funktioniert. Sie beenden den "Scrollback-Modus" mit Esc.

Was das Scrollen des Scrollback-Puffers angeht, ohne zuerst in den Scrollback-Modus zu wechseln, ist dies wahrscheinlich nicht möglich, ohne den Bildschirm zu ändern. Abgesehen vom Scrollback-Modus habe ich noch nie von einer Möglichkeit gehört, auf den Scrollback-Puffer zuzugreifen.

67
sleske

Der ausgezeichnete Artikel, auf den sich Jon Z bezieht, ist nicht mehr verfügbar, aber ich konnte die Nur-Text-Version aus dem Google-Cache fischen. Ich speichere es hier, falls Google das auch in Zukunft fallen lässt. Der ursprüngliche Beitrag wurde von Mikael Ståldal verfasst.

-

Wie benutzt man ein Mausrad in GNU Screen

GNU Screen unterstützt Scrollback, aber standardmäßig müssen Sie umständliche Tasten verwenden, um es zu verwenden. Ich möchte Shift-PageUp, Shift-PageDown und das Mausrad zum Scrollen verwenden können, genau wie Sie es in xterm tun können.

Es war nicht einfach, Screen dafür zu konfigurieren, und es beinhaltet die Zusammenarbeit mit dem Terminal-Emulator. Aber ich habe es endlich geschafft, eine Lösung zu finden, die ziemlich gut funktioniert. Fügen Sie dies zu Ihrer ~/.Xresources-Datei hinzu (Sie müssen sich abmelden, damit dies wirksam wird):

XTerm*saveLines: 0
XTerm*vt100.translations: #override \n\
  Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
  Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
  Lock @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
  @Num_Lock Ctrl <Btn4Down>: string(0x1b) string("[25S") \n\
  <Btn4Down>: string(0x1b) string("[5S") \n\
  Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
  Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
  Lock @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
  @Num_Lock Ctrl <Btn5Down>: string(0x1b) string("[25T") \n\
  <Btn5Down>: string(0x1b) string("[5T") \n\
  Shift <KeyPress> Prior: string(0x1b) string("[25S") \n\
  Shift <KeyPress> Next: string(0x1b) string("[25T") \n

Fügen Sie dann Folgendes zu Ihrer ~/.screenrc-Datei hinzu:

defscrollback 1000

# Scroll up
bindkey -d "^[[5S" eval copy "stuff 5\025"
bindkey -m "^[[5S" stuff 5\025

# Scroll down
bindkey -d "^[[5T" eval copy "stuff 5\004"
bindkey -m "^[[5T" stuff 5\004

# Scroll up more
bindkey -d "^[[25S" eval copy "stuff \025"
bindkey -m "^[[25S" stuff \025

# Scroll down more
bindkey -d "^[[25T" eval copy "stuff \004"
bindkey -m "^[[25T" stuff \004

Dies funktioniert in xterm. Ich bin nicht sicher, ob es in anderen Terminalemulatoren funktioniert.

Beachten Sie, dass dies die normale Bildlaufunterstützung in xterm deaktiviert. Sie können nur dann einen Bildlauf durchführen, wenn Sie Bildschirm verwenden. Vielleicht möchten Sie xterm wie folgt starten, um Screen immer zu verwenden:

xterm -e screen
24
Tommi R.

Unter OS X (Snow Leopard) hat Folgendes für mich funktioniert:

http://slaptijack.com/system-administration/mac-os-x-terminal-and-gnu-screen-scrollback/

Kurz gesagt müssen Sie ~/.screenrc auf dem Remote-Host (dem Host, auf dem Sie screen ausführen) Folgendes hinzufügen:

defscrollback 5000
termcapinfo xterm* [email protected]:[email protected]
13
Jesse Crossen

Und um das Scrollrad in einem VIM innerhalb GNU Screen zu benutzen:

[.vimrc]

set mouse=a             " hold shift to copy xterm
set ttymouse=xterm2     " necessary for gnu screen & mouse
11
edench

Drücken Sie Ctrl+a gefolgt von [

Die Titelleiste Ihres Terminals sollte jetzt den Kopiermodus anzeigen.

Jetzt sollten die Pfeiltasten und das Mausrad wie erwartet funktionieren.

Um zum normalen Modus zurückzukehren, drücken Sie Esc oder drücken Sie mehrmals die Eingabetaste.

6
Peter Crotty

Das Folgende funktionierte für mich sowohl in Cygwin als auch in PuTTY: Bearbeite .screenrc und füge hinzu

terminfo xterm* ti=:te=
4

Das Setzen der Variablen TERM auf vt100 Anstelle von xterm, bevor der Bildschirm ausgeführt wird, funktioniert ebenfalls.
Ich benutze das schon lange, wirkt wie ein Zauber.

Fügen Sie dies zu Ihrem .bashrc Hinzu:

# make scrollbar / wheel scrolling work when running screen in gnome-terminal (or other)
if [ "$TERM" = "xterm" ]; then
  export TERM=vt100
fi

-

Als Referenz hat mein .screenrc Folgendes (für diese AFAIK nicht erforderlich):

# Extend the vt100 desciption by some sequences.
termcap  vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
4
lemonsqueeze

Wenn die obigen Antworten bei Ihnen nicht funktionieren, vergewissern Sie sich, dass in Ihrer .screenrc-Datei nicht die Option caption oder alwayslastline festgelegt ist. Wenn Sie sie haben, wird dies nicht funktionieren:

termcapinfo xterm* [email protected]:[email protected]

Wenn Sie diese Informationen benötigen, können Sie versuchen, sie im Titel Ihres Terminals festzulegen (mit termcapinfo).

3
nachocab

Die Lösung bei Verwendung von "Ubuntu 16.04.2 LTS" lautet wie folgt:

ein). Aktualisieren Sie $ HOME/.screenrc wie in den vorherigen Antworten angegeben:

termcapinfo xterm* [email protected]:[email protected]

b). Verwenden Sie "Einstellungen". "Bevorzugte Anwendungen", um das Standardterminal in xterm zu ändern, indem Sie das "X-Terminal" in der Dropdown-Liste auswählen.

Einige überflüssige Notizen

  • Keines der anderen Terminals, einschließlich der Installation von "lxterminal", funktionierte für mich, selbst wenn ich die termcapinfo-Zeile in "*" anstelle von "xterm *" änderte.

  • Durch Klicken auf die Menüschaltfläche in der oberen linken Ecke des Bildschirms können Sie den Einstellungsdialog über das dritte Symbol in der unteren rechten Ecke aufrufen.

0