ouverture d'une nouvelle fenêtre

Le
Stéphane Dutailly
Bonjour à tous,

Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.
La solution que j'ai trouvé consiste à faire un glisser-déposer de mon
fichier dans ma première session mais j'aimerais bien ne pas faire tout
le temps cela.
J'ai cherché un peu dans la doc du côté des frames et des windows mais
tout cela est encore obscur pour moi. J'ai essayé pop-up-frames 1 qui ne
résout pas le problème.
Auriez-vous une solution à me proposer?
Merci d'avance.
Stéphane
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #23190601
À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.
La solution que j'ai trouvé consiste à faire un glisser-déposer de mon
fichier dans ma première session mais j'aimerais bien ne pas faire
tout le temps cela.
J'ai cherché un peu dans la doc du côté des frames et des windows mais
tout cela est encore obscur pour moi. J'ai essayé pop-up-frames 1 qui
ne résout pas le problème.
Auriez-vous une solution à me proposer?



Solution générale : emacsclient !

Ensuite, le paramétrage de emacs/emacsclient pour que ça convienne
parfaitement à vos besoins et usages est un peu délicat. ;-)

--
Paul Gaborit -
JJ. Rétorré
Le #23191201
Paul Gaborit
À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.





<snip>

Solution générale : emacsclient !

Ensuite, le paramétrage de emacs/emacsclient pour que ça convienne
parfaitement à vos besoins et usages est un peu délicat. ;-)



Ça suppose qu'emacs ait été lancé et avec server-mode activé.
N'y aurait-il pas moyen de créer un script qui lance emacs en
server-mode si aucune instance n'est lancée et qui lance emacsclient
sinon ? comme le fait mon butineur web ?

--
JJR.
Frédéric Perrin
Le #23191651
JJ. Rétorré
Paul Gaborit
À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se l ance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.



Solution générale : emacsclient !



N'y aurait-il pas moyen de créer un script qui lance emacs en
server-mode si aucune instance n'est lancée et qui lance emacsclient
sinon ? comme le fait mon butineur web ?



girafe:~% cat $( which $EDITOR )
#!/bin/sh
exec emacsclient -a emacs --create-frame "$@"

En ajoutant, bien sûr, (server-start) dans ton fichier d'init.
Stéphane Dutailly
Le #23191541
Le 09/03/2011 16:34, Paul Gaborit a écrit :

À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.
La solution que j'ai trouvé consiste à faire un glisser-déposer de mon
fichier dans ma première session mais j'aimerais bien ne pas faire
tout le temps cela.
J'ai cherché un peu dans la doc du côté des frames et des windows mais
tout cela est encore obscur pour moi. J'ai essayé pop-up-frames 1 qui
ne résout pas le problème.
Auriez-vous une solution à me proposer?



Solution générale : emacsclient !

Ensuite, le paramétrage de emacs/emacsclient pour que ça convienne
parfaitement à vos besoins et usages est un peu délicat. ;-)




Merci Paul mais je ne comprends pas bien ce qu'il faut faire. La doc sur
emacswiki dit ceci:

Starting Server With Emacs 23 : Easy Way

Bash Shells

RichardRiley : With emacs 23 simply do something like

#!/bin/bash
export GDK_NATIVE_WINDOWS=1
exec emacsclient --alternate-editor="" -c "$@"
Then

export EDITOR=~/bin/edit
Where “edit” is the small script above. The key is the “” for
alternate-editor. emacsclient starts the server for you if and only if
it is not already running.


Cela signifie-t-il que je doive créer un fichier et écrire cela dedans?
Si oui, à quel endroit? Quel genre de fichier? Si non, est-ce quelque
chose à rajouter dans un fichier (pas dans le .emacs je suppose)?
Dois-je taper cela dans un terminal?
J'avoue que là, je ne comprends pas trop... Si vous aviez quelques
éclaircissements, je suis preneur.
Bien cordialement,
Stéphane
Paul Gaborit
Le #23192191
À (at) Wed, 09 Mar 2011 20:06:07 +0100,
JJ. Rétorré
Paul Gaborit
À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.





<snip>

Solution générale : emacsclient !

Ensuite, le paramétrage de emacs/emacsclient pour que ça convienne
parfaitement à vos besoins et usages est un peu délicat. ;-)



Ça suppose qu'emacs ait été lancé et avec server-mode activé.
N'y aurait-il pas moyen de créer un script qui lance emacs en
server-mode si aucune instance n'est lancée et qui lance emacsclient
sinon ? comme le fait mon butineur web ?



C'est très bien expliqué sur le Wiki :

En fait, emacsclient fait tout tout seul (et même lancer un emacs en
mode daemon si nécessaire).


--
Paul Gaborit -
Paul Gaborit
Le #23192181
À (at) Wed, 09 Mar 2011 21:27:41 +0100,
Frédéric Perrin
JJ. Rétorré
Paul Gaborit
À (at) Wed, 09 Mar 2011 14:59:59 +0100,
Stéphane Dutailly
Lorsque j'ouvre un nouveau fichier (en double-cliquant dessus) alors
qu'un précédent fichier est déjà ouvert, emacs se lance à nouveau et
j'ai donc deux sessions d'emacs d'ouvertes.



Solution générale : emacsclient !



N'y aurait-il pas moyen de créer un script qui lance emacs en
server-mode si aucune instance n'est lancée et qui lance emacsclient
sinon ? comme le fait mon butineur web ?



girafe:~% cat $( which $EDITOR )
#!/bin/sh
exec emacsclient -a emacs --create-frame "$@"

En ajoutant, bien sûr, (server-start) dans ton fichier d'init.



Mieux vaut la solution avec une chaîne vide comme valeur pour -a (c'est
la solution du wiki) :

% cat $( which $EDITOR )
#!/bin/sh
exec emacsclient -a "" --create-frame "$@"


--
Paul Gaborit -
Paul Gaborit
Le #23192261
À (at) Wed, 09 Mar 2011 21:36:22 +0100,
Stéphane Dutailly
Merci Paul mais je ne comprends pas bien ce qu'il faut faire. La doc
sur emacswiki dit ceci:

Starting Server With Emacs 23 : Easy Way

Bash Shells

RichardRiley : With emacs 23 simply do something like

#!/bin/bash
export GDK_NATIVE_WINDOWS=1
exec emacsclient --alternate-editor="" -c "$@"



C'est un script (un fichier texte) de 3 lignes à créer et à placer
quelque part où il sera vu par votre interpréteur de commandes.
Ci-dessous, on suppose qu'il est écrit dans "~/bin/edit" (il faut aussi
lui donner les droits d'exécution).

Then

export EDITOR=~/bin/edit



La variable EDITOR contient le chemin de l'éditeur de texte par défaut
pour les commandes.

Cela signifie-t-il que je doive créer un fichier et écrire cela
dedans? Si oui, à quel endroit? Quel genre de fichier? Si non, est-ce
quelque chose à rajouter dans un fichier (pas dans le .emacs je
suppose)? Dois-je taper cela dans un terminal?
J'avoue que là, je ne comprends pas trop... Si vous aviez quelques
éclaircissements, je suis preneur.



J'espère que les explications ci-dessus suffiront. Ensuite, il vous
restera à trouver comment configurer votre explorateur de fichiers (KDE,
Gnome, XFCEn autres...) pour qu'il fasse appel à ~/bin/edit plutôt qu'à
emacs.

--
Paul Gaborit -
Lucas Levrel
Le #23193141
Le 10 mars 2011, Stéphane Dutailly a écrit :

export EDITOR=~/bin/edit

c'est à taper où? dans un terminal? Je suppose que ça ne ce mets pas dans le
script.



À mettre dans le fichier ~/.profile (fichier « caché » .profile de votre
répertoire perso). Sera pris en compte à la prochaine session.

Y a-t-il un nom particulier à donner au fichier de script, ou n'importe quel
nom convient?



Comme dit, n'importe quel nom convient mais la ligne « export ... »
suppose qu'il s'appelle « edit » dans le répertoire « bin » de votre
répertoire perso.

--
LL
Paul Gaborit
Le #23193491
À (at) Thu, 10 Mar 2011 09:56:37 +0100,
Stéphane Dutailly
Merci Paul, je vais essayer. Deux dernières choses:

export EDITOR=~/bin/edit

c'est à taper où? dans un terminal? Je suppose que ça ne ce mets pas
dans le script.



Dans le fichier de configuration du shell que vous utilisez...

Y a-t-il un nom particulier à donner au fichier de script, ou
n'importe quel nom convient?



Ici, c'est "~/bin/edit". Mais si vous choisissez un autre nom, il faut
aussi changer la valeur donnée à EDITOR.


--
Paul Gaborit -
Pascal J. Bourguignon
Le #23194331
Stéphane Dutailly
Merci Paul, je vais essayer. Deux dernières choses:

export EDITOR=~/bin/edit

c'est à taper où? dans un terminal? Je suppose que ça ne se met pas
dans le script.




MacOSX cache un système unix. Il y a des introductions à unix pour les
utilisateurs avancés de MacOSX. Par exemple:

http://osxfaq.com/Tutorials/LearningCenter/

ou en français:

http://www.eyrolles.com/Informatique/Livre/introduction-a-unix-pour-mac-os-x-panther-9782841773046

--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
Publicité
Poster une réponse
Anonyme