[hs mais pas de rep ailleurs] pb avec screen

Le
Philippe Monroux
Bonjour,

J'utilise screen avec, mettons :
screen -t em 0 emacs
et un shell en 1

Emacs est en serveur de gnuclient.

Quand je fais sous le fenêtre 1 :
screen -X "gnuclient FICHIER" select 0

il me répond tjrs

-X unknow command "gnuclient FICHIER"

Comment avoir l'édition de FICHIER dans la fenêtre 0 avec celle-ci en
avant automatiquement (raise) ?

Merci

--
Philippe Monroux
Ile de la Reunion
E 55.3 S 21.5


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
raphael.berbain
Le #9420471
Philippe Monroux
Quand je fais sous le fenêtre 1 :
screen -X "gnuclient FICHIER" select 0

il me répond tjrs

-X unknow command "gnuclient FICHIER"



L'option -X de screen envoie une commande _screen_ à une session
existante, pas une commande au sens shell/binaire dans $PATH. Par
example, 'screen -X license', pas 'screen -X /bin/ls'.

Mais tout n'est pas perdu : Screen propose une commande nommée 'exec'.
Ce qui nous donne, après mix de tout ça: 'screen -X exec <cmd shell>'.

Je n'ai pas poussé plus loin ; J'ai essayé avec des 'screen -X exec
man screen' et visiblement, il y a encore des glitchs avec la
connexion des entrées/sorties entre le pager et la session screen. Il
doit falloir bidouiller les paramètres de exec de manière fine et
idoïne. 'man screen' pour plus d'infos.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Frédéric Bothamy
Le #9416581
* Philippe Monroux
Bonjour,

J'utilise screen avec, mettons :
screen -t em 0 emacs
et un shell en 1

Emacs est en serveur de gnuclient.

Quand je fais sous le fenêtre 1 :
screen -X "gnuclient FICHIER" select 0

il me répond tjrs

-X unknow command "gnuclient FICHIER"

Comment avoir l'édition de FICHIER dans la fenêtre 0 avec celle-ci en
avant automatiquement (raise) ?



Il ne faut pas procéder ainsi AMA, mais plutôt modifier ta commande
d'édition standard pour appeler consécutivement le changement d'écran et
l'envoi dans Emacs :

- tu définis un petit script ~/bin/emacs contenant :

#!/bin/sh

echo $WINDOW > ~/tmp/emacsclient-caller
screen -r -X select 1
emacsclient "$@"

cela va t'envoyer dans le screen d'Emacs lors de l'édition d'un
fichier et sauvegarder le screen d'origine (j'utilise emacsclient
plutôt que gnuclient, mais cele ne devrait rien changer)

- puis dans ton .emacs, tu ajoutes ceci :

(add-hook 'server-done-hook
(lambda ()
(shell-command
"screen -r -X select `cat ~/tmp/emacsclient-caller`")))

qui devrait te replacer dans le screen d'avant l'édition de ton
fichier quand tu as terminé celle-ci (je ne sais pas si cela
fonctionne avec gnuclient, le hook est peut-être différent, mais
l'idée est là).

Tu peux ensuite par exemple définir EDITOR sur ~/bin/emacs, ainsi les
programmes utilisant cette variable enverront leur fichier directement
dans Emacs (comme mutt par exemple). AMHA Cela donne une combinaison
d'outils très efficace.

Ah, un dernier conseil, j'ai eu pas mal de problèmes avec les caractères
accentués, Emacs, screen et les terminfo et je les ai (à peu près)
régler en passant un "-T linux" au lancement du vrai binaire emacs
(depuis le .screenrc donc).

Le Wiki Emacs a plus d'informations sur ce problème (c'est là que
j'avais trouvé cette solution) :

http://www.emacswiki.org/cgi-bin/wiki/EmacsClient (pour EmacsClient)
http://www.emacswiki.org/cgi-bin/wiki/ScreenServer (pour GnuClient)


Fred

--
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Philippe Monroux
Le #9416551
Bonjour,

Le Thu 04 Nov 2004, à 05 h 08 min 58 sAM (UTC +0100),
vous (Frédéric Bothamy avez écrit :

> J'utilise screen avec, mettons :
> screen -t em 0 emacs
> et un shell en 1
> Emacs est en serveur de gnuclient.
> Quand je fais sous le fenêtre 1 :
> screen -X "gnuclient FICHIER" select 0
> il me répond tjrs
> -X unknow command "gnuclient FICHIER"
> Comment avoir l'édition de FICHIER dans la fenêtre 0 avec celle-ci en
> avant automatiquement (raise) ?



Il ne faut pas procéder ainsi AMA, mais plutôt modifier ta commande
d'édition standard pour appeler consécutivement le changement d'écran et
l'envoi dans Emacs :

- tu définis un petit script ~/bin/emacs contenant :

#!/bin/sh

echo $WINDOW > ~/tmp/emacsclient-caller
screen -r -X select 1
emacsclient "$@"

cela va t'envoyer dans le screen d'Emacs lors de l'édition d'un
fichier et sauvegarder le screen d'origine (j'utilise emacsclient
plutôt que gnuclient, mais cele ne devrait rien changer)

- puis dans ton .emacs, tu ajoutes ceci :

(add-hook 'server-done-hook
(lambda ()
(shell-command
"screen -r -X select `cat ~/tmp/emacsclient-caller`")))

qui devrait te replacer dans le screen d'avant l'édition de ton
fichier quand tu as terminé celle-ci (je ne sais pas si cela
fonctionne avec gnuclient, le hook est peut-être différent, mais
l'idée est là).

Tu peux ensuite par exemple définir EDITOR sur ~/bin/emacs, ainsi
les programmes utilisant cette variable enverront leur fichier
directement dans Emacs (comme mutt par exemple). AMHA Cela donne une
combinaison d'outils très efficace.



c'est exactement ce que j'ai fait (sauf que ne n'ai pas fait de script):

set editor="screen -X select em; gnuclient +12 '%s'"

Gnuserv Done Hook: [Hide]
[INS] [DEL]
(lambda nil
(shell-command "screen -X other"))

Et ça marche impec.

Car en fait mon pb était d'employer mutt emacs+gnuclient conjointement
de manière conviviale. J'avais posé la question en simplifiant mon pb
par pédagogie :o)

Ah, un dernier conseil, j'ai eu pas mal de problèmes avec les
caractères accentués, Emacs, screen et les terminfo et je les ai (à
peu près) régler en passant un "-T linux" au lancement du vrai
binaire emacs (depuis le .screenrc donc).



Merci du tuyau. En fait il va falloir que je lise les docs (je débute
sous screen) concernant cette histoire de terminal car (évidemment) je
veux voir mes .dvi et .ps sous console (matrox fb) et screen.

Le Wiki Emacs a plus d'informations sur ce problème (c'est là que
j'avais trouvé cette solution) :

http://www.emacswiki.org/cgi-bin/wiki/EmacsClient (pour EmacsClient)
http://www.emacswiki.org/cgi-bin/wiki/ScreenServer (pour GnuClient)



Fred




à+

--
ph


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Philippe Monroux
Le #9416541
Bonjour,

Le jeu 04 nov 2004, à 05 h 08 min 58 s (UTC +0100),
vous (Frédéric Bothamy avez écrit :


http://www.emacswiki.org/cgi-bin/wiki/ScreenServer (pour GnuClient)



par contre la solution donnée ici est super car elle permet de mixer
tty et X.


--
Philippe Monroux
Ile de la Reunion
E 55.3 S 21.5


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Frédéric Bothamy
Le #7911791
* Philippe Monroux
Bonjour,

Le jeu 04 nov 2004, à 05 h 08 min 58 s (UTC +0100),
vous (Frédéric Bothamy avez écrit :


> http://www.emacswiki.org/cgi-bin/wiki/ScreenServer (pour GnuClient)

par contre la solution donnée ici est super car elle permet de mixer
tty et X.



Exact, mais pas nécessaire pour moi car je n'utilise pas X sur la
machine en question (et il me semble que cette page n'existait pas quand
j'avais fait mes recherches initiales (un ou deux ans, je crois)).


Fred

--
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Poster une réponse
Anonyme