7
votes

Utilisation d'Emacs en tant que serveur et n'ouvrez qu'une seule fenêtre exactement, qui devrait être maximisée

J'aimerais exécuter mes emacs en mode Daemon, puis utiliser emacsclient pour afficher réellement les choses. Toutefois, si j'exécute EmacsClient FileName , il apparaît dans le terminal, ce qui n'est pas ce que je veux; J'ai au lieu de cela avoir à transmettre l'option -c .

Cependant, cette option crée toujours un nouveau cadre, ce qui n'est pas ce que je veux - je préfère avoir un cadre et avoir des objets ouverts dans un nouveau tampon dans le même cadre si Il existe déjà; Sinon, cela devrait me faire un nouveau cadre. Cependant, je ne sais pas comment faire cela.

En outre, je souhaite qu'une image soit maximisée, que j'atteigne généralement mes emacs de départ avec l'option -mm ; Comment ferais-je m'assurer qu'un cadre réalisé par emacsclient est également maximisé?


2 commentaires

Je ne suis pas sûr de votre appel initial à emacsclient (c.-à-d. Avant d'ouvrir votre premier cadre), mais lorsqu'il y a une image graphique déjà ouverte, nom de fichier emacsclient visites nom de fichier dans le cadre existant (au moins pour moi). Est-ce toujours le cas qu'il s'ouvre dans le terminal pour vous, ou simplement lorsque vous n'avez pas de cadre graphique existant?


@Dan: seulement quand je n'ai pas de cadre existant. Y a-t-il un moyen de le forcer à utiliser un cadre par défaut au lieu du terminal? Fondamentalement, je voudrais avoir une commande que a) ouvre une image s'il n'y en a pas; et B) s'il y a une trame, ouvre le document dans le même cadre dans un nouveau tampon.


3 Réponses :


1
votes

Pour avoir chaque nouveau cadre maximisé, vous pouvez ajouter ceci à votre fichier .emacs: xxx


2 commentaires

N'est-ce pas Modify-All-Frames-Paramètres Un contrat d'un tir pour n'importe quel cadre (s) est ouvert pour le moment? Peut-être avez-vous pensé à (add-à-la liste '»par défaut... - Il peut nécessiter une construction plus récente ou plus développée d'EMACS cependant: Stackoverflow.com/a/18711628/2112489


Modify-Tous-Cadres-Paramètres (au moins dans ma version EMACS, 24.3) ont un effet dans les images à créer.



1
votes

est votre écran env Set dans le terminal où vous exécutez EmacsClient? Étant donné que le comportement que vous demandez doit être la valeur par défaut (le comportement de la réutilisation des cadres existants, je veux dire).


1 commentaires

Lorsque j'exécute echo $ Afficher , je reçois la sortie : 0



5
votes

Le script suivant effectue les éléments suivants:

  • Démarrez EMACS Server si nécessaire
  • S'il n'y a pas de cadres ouverts, ouvrez un nouveau
  • Ouvrez le (s) fichier (s) donné dans le cadre actuel xxx

    modifier: expansion fixe des arguments de position (2017-12-31).


2 commentaires

Cela fonctionne bien pour les emacs terminaux. Si vous souhaitez utiliser la GUI EMACS à la place, modifiez la ligne de emacsclient -n -t $ * à emacsclient -n -a -a emacs $ *


@Jounathaen les deux travaillent, donc cela ne change rien pour moi (Emacs 24.5). Mais cela pourrait être différent pour les autres versions EMACS ...