OVH Cloud OVH Cloud

lancer Emacs avec un Mutt dedans en mode terminal

28 réponses
Avatar
Vincent Lefevre
Bonjour,

J'aimerais pouvoir lancer Emacs avec un Mutt (ou tout autre
processus) dedans en mode terminal. En gros, un peu l'équivalent
d'un "xterm -e mutt args...", mais avec un Emacs à la place d'un
Xterm (c'est pour les liens mailto...). Comment faire?

Un truc du style

emacs --eval '(progn (set-buffer (make-term "Mutt" "mutt" nil "arg"))
(term-mode) (term-char-mode) (switch-to-buffer "*Mutt*"))'

fonctionne, mais je voudrais que quand Mutt quitte, la fenêtre soit
fermée.

D'autre part, pour la composition du message, Mutt lance un
éditeur externe (configuré par l'utilisateur). Je suppose qu'un
"emacs -nw" fait l'affaire (voire un "gnuclient -nw", mais j'avais
eu des problèmes avec les couleurs dans le passé, si bien que je
n'utilise plus gnuclient).

--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA

8 réponses

1 2 3
Avatar
Florent Georges
Matthieu Moy wrote:

"Florent Georges" writes:

> Je ne connais pas CLA.

[...]

Non, rien :-)



Heu, j'ai l'impression d'avoir manque un truc gros comme la lune,
mais je ne vois pas. Sans doute que l'abus de deadlines a proximite
elevee nuit a la qualite des cellules ...

--drkm
Avatar
Vincent Lefevre
Dans l'article ,
Matthieu Moy écrit:

Pour ton problème, un gnuclient -batch -eval '(find-file ...)' devrait
pouvoir le faire.



Il y a un autre problème avec ça: gnuclient rend la main immédiatement.
Il faudrait qu'il rende la main seulement une fois que le buffer est
tué. Y a-t-il un moyen?

Sinon il faut que je me débrouille avec des signaux (quand le buffer
est tué, Emacs enverrait un signal au script qui a lancé gnuclient).

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Avatar
Florent Georges
Vincent Lefevre wrote:

Écrire un fichier cla.el qui fasse qu'Emacs ne traite pas les
arguments à partir d'un "+", comme avec:

emacs -l cla.el + a b



Ah, ok. Tu es dans le contexte du traitement des aguments. Tu peux
utiliser 'command-line-args-left' a la place de 'command-line-args'
dans ce cas, pour connaitre les arguments qui restent sur la ligne de
commande au moment de l'appel (ici, au moment du chargement de cla.el).
Cette liste devrait a ce moment contenir ("+" "a" "b").

--drkm
Avatar
Vincent Lefevre
Dans l'article ,
Florent Georges écrit:

Ah, ok. Tu es dans le contexte du traitement des aguments. Tu peux
utiliser 'command-line-args-left' a la place de 'command-line-args'
dans ce cas, pour connaitre les arguments qui restent sur la ligne de
commande au moment de l'appel (ici, au moment du chargement de cla.el).
Cette liste devrait a ce moment contenir ("+" "a" "b").



Merci, c'est effectivement le cas.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Avatar
Matthieu Moy
"Florent Georges" writes:

Matthieu Moy wrote:

"Florent Georges" writes:



> Je ne connais pas CLA.



[...]



Non, rien :-)



Heu, j'ai l'impression d'avoir manque un truc gros comme la lune,
mais je ne vois pas. Sans doute que l'abus de deadlines a proximite
elevee nuit a la qualite des cellules ...



Tu dis ne pas connaitre CLA, ce qui est normal vu que c'est un script
maison de une ligne, qui est cite un peu plus haut dans le message.

--
Matthieu
Avatar
Florent Georges
Matthieu Moy wrote:

Tu dis ne pas connaitre CLA, ce qui est normal vu que c'est un script
maison de une ligne, qui est cite un peu plus haut dans le message.



'y a des jours comme ca :-p

--drkm
Avatar
Erwan David
Vincent Lefevre <vincent+ écrivait :

Dans l'article ,
Matthieu Moy écrit:

Pour ton problème, un gnuclient -batch -eval '(find-file ...)' devrait
pouvoir le faire.



Il y a un autre problème avec ça: gnuclient rend la main immédiatement.
Il faudrait qu'il rende la main seulement une fois que le buffer est
tué. Y a-t-il un moyen?



Oui. C'est le comportement normal...

extrait du man :
-q

This option informs gnuclient to exit once connection has been
made with the XEmacs process. Normally gnuclient waits until
all of the files on the command line have been finished with
(their buffers killed) by the XEmacs process, and all the forms
have been evaluated. Note that this is different from XEmacs
itself, where this option means to inhibit loading of the user
init file.

--
Si vous embauchez, voici mon CV
http://www.rail.eu.org/cv/cv.pdf
Avatar
Vincent Lefevre
Dans l'article ,
Erwan David écrit:

Vincent Lefevre <vincent+ écrivait :

> Dans l'article ,
> Matthieu Moy écrit:
>
>> Pour ton problème, un gnuclient -batch -eval '(find-file ...)' devrait
>> pouvoir le faire.
>
> Il y a un autre problème avec ça: gnuclient rend la main immédiatement.
> Il faudrait qu'il rende la main seulement une fois que le buffer est
> tué. Y a-t-il un moyen?

Oui. C'est le comportement normal...



Non...

extrait du man :
-q

This option informs gnuclient to exit once connection has been
made with the XEmacs process. Normally gnuclient waits until
all of the files on the command line have been finished with


^^^^^^^^^^^^^^^^^^^
Le fichier n'est pas précisé dans la ligne de commande (sous-entendu
en argument), mais dans du code LISP.

(their buffers killed) by the XEmacs process, and all the forms
have been evaluated. Note that this is different from XEmacs
itself, where this option means to inhibit loading of the user
init file.



--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
1 2 3