ubuntuusers.de

screen session starten mit C-a S oben terminal, unten ipython, bindkeys C-a C-i <F5> ?

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

pyro

Avatar von pyro

Anmeldungsdatum:
29. August 2007

Beiträge: 213

Hi, ich fange gerade an ein bisschen mit screen rumzuspielen, benutzen möchte ich es vor allem, um mit vim und ipython auf einem Bildschirm arbeiten zu können. dazu möchte ich eine screensession so starten können, dass der bildschirm schon in zwei teile geteilt ist, oben eine shell, und unten ipython. Ausserdem möchte ich C-a C-i auf die Taste <F5> legen, um schnell zwischen den beiden wechseln zu können. nett wäre es noch, den ipython teil vom "screen" verkleinern zu können. 😬

edit: C-a C-i auf F5 zu mappen, funzt mit bindkey -k k5 focus bzw C-a C-i ist nach dem manuall gar nicht die tastenkombination die zum wechseln zwischen gesplitteten screens vorgesehen ist, sondern C-a tab.

edit: ok ok, das verändern der größe einzelner splits funktioniert mit C-a: resize [-l] [-h] [-v] amount.

-l für "local for slice", -h für horizontal, -v für vertical.

vertikale splits werden mit C-a | und horizontale mit C-a S gemacht.

jetzt muss das ganze noch irgendwie in die screenrc oder noch besser in einen alias zum screen aufrufen. damit ich nicht jedesmal das layout einrichten muss.

Was mir negativ aufgefallen ist, ist, dass das layout nicht bestehen bleibt, wenn die session detached wurde. Dafür bräuchte ich auch noch eine Lösung.

Was auchnoch wirklich nett wäre, wäre maus support, zum auswählen der verschiedenen "screen-splits" obwohl F5 drücken um die verschiedenen splits anzuwählen auch ganz ok ist 😉

Bilder

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Also ich nutze in ~/.bash_profile und ~/.bashrc folgendes

if [ -z $STY ] && [ $TERM != "screen" ]; then  
  /usr/bin/screen -xRR;   
else
  /usr/bin/screen -X hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c ' 
fi

wodurch ich immer meine Sitzung als Screen-Sitzung starte. In deinem Fall wäre folgendes zielführender:

Datei zum Starten oder halt manuell (den Befehl kann man sich auch merken !!!):

start

/usr/bin/screen -xRR 

und dann nur ~/.bashrc:

/usr/bin/screen -X hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c ' 

In dieser Datei musst du nun die ganzen Befehle einbauen. Sie werden hinter dem "/usr/bin/screen -X" eingebaut. Du kannst mehrere Zeilen nutzen.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Wenn das eh die letzten Befehle in der .bashrc sind, kannst du ein exec davor setzen, dann hängt die unbenutzte Shell nicht im Hintergrund rum.

pyro

(Themenstarter)
Avatar von pyro

Anmeldungsdatum:
29. August 2007

Beiträge: 213

das mit dem hardstatus raff ich noch net so wirklich 😬 aber nach langem suchen, hab ich den befehl gefunden, der das Fenster vertikal splittet. Um das nich bei jedem screen aufruf auszuführen, hab ich den ordner .pydev erstellt, und da eine .screenrc mit folgendem inhalt reingepackt:

bindkey -k k7 prev
bindkey -k k8 next
bindkey -k k6 focus

screen
title vim
split
split -v
focus
screen
title bash
resize 50
focus bottom
screen ipython
title ipython
resize 10
focus top
layout save pydev

durch das "layout save" bleibt das layout jetzt auch nach einem detach bestehen. Um noch einfach die session zu starten, hab ich noch ein alias pydev="screen -c ${HOME}/.pydev/.screenrc in die .bashrc gepackt, und fertig ^^ allerdings bin ich mit dem Verhalten noch nicht 100% zufrieden, z.B. das wechseln zwischen den verschiedenen Flächen über F5 ist zwar schon besser als C-a Tab o.ä, aber es wäre nett, entweder über shortcuts direct nach unten/oben, rechts links zu kommen, oder splits mit der Maus auswählen zu können. Mit focus kann man aber nur top, bottom, up, down benutzen ... , ist also nicht wirklich brauchbar. Maus support, z.B. zum resizen ( oder halt zwischen den flächen auswählen ), fehlt mir allgemein ein bisschen 😉 Ausserdem blinkt das Terminal immer, wenn in vim backspace gedrückt wird, obwohl der Cursor in spalte 0 ist, oder wenn ich tab drücke, um einen pfad in der bash zu vervollständigen. Das nervt auch noch ein bisschen.

Antworten |