[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hs mais pas de rep ailleurs] pb avec screen



Bonjour,

Le Thu 04 Nov 2004, à 05 h 08 min 58 sAM  (UTC +0100),
vous (Frédéric Bothamy <frederic.bothamy@free.fr>) 
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



Reply to: