43 votes

Comment maximiser Emacs sur Windows au démarrage?

Cela me rend fou: je veux simplement Emacs pour maximiser quelle que soit la résolution de l'écran que j'ai au démarrage. Idéalement j'aimerais un multi-plateforme (Windows & Linux) solution qui fonctionne sur n'importe quelle résolution d'écran, mais je ne peux même pas le faire fonctionner sur windows XP avec le même codé en dur tailles.

Voici ce que j'ai essayé:

  1. Réglage de la-frame-accédez à la liste avec la hauteur/largeur
  2. Réglage par défaut-frame-accédez à la liste
  3. (Windows choses spécifiques) Envoi de message à la emacs windows raconter à maximiser via (w32-send-sys-command 61488)
  4. Essayé cette fonction que j'ai trouvé quelque part:

    (defun toggle-fullscreen ()
      "toggles whether the currently selected frame consumes the entire display
    or is decorated with a window border"
      (interactive)
      (let ((f (selected-frame)))
        (modify-frame-parameters 
         f
         `((fullscreen . ,(if (eq nil (frame-parameter f 'fullscreen)) 
                              'fullboth
                            nil))))))
    
  5. Essayé les méthodes ci-dessus à la fois le début et la fin de mon fichier init pour essayer d'éliminer les interférences provenant d'autres init choses.

Malheureusement, aucun des travaux ci-dessus!! Pour certains de ce qui précède, je peux voir mon emacs windows redimensionne correctement pendant une fraction de seconde avant de revenir à la petite taille par défaut. Et si je lance les méthodes ci-dessus après l'initialisation, la emacs windows NE redimensionner correctement. Qu'est-ce qui se passe ici?

[p.s. il y a d'autres TELLEMENT de questions sur ce sujet, mais aucune des réponses de travail]


Mise à jour:

Les réponses me font penser que quelque chose d'autre dans mon fichier init est à l'origine du problème. Et en effet il est! Après quelques essai-et-erreur, j'ai trouvé le coupable. Si je commente la ligne suivante, tout fonctionne parfaitement:

(tool-bar-mode -1)

Ce qui dans le monde ne la barre d'outils ont à voir avec la maximisation de windows?

Donc, la question maintenant est: comment puis-je désactiver la barre d'outils (après tout, emacs barre d'outils est laid et prend le précieux écran de l'immobilier) ET de maximiser les fenêtres à la fois dans mon fichier init? Il est peut-être un bug de la barre d'outils interfère avec la taille des fenêtres?

Précisions: (barre d'outils en mode -1) tourne la barre d'outils off, mais cette ligne interfère avec la maximisation de l'Emacs de windows. Donc, si j'ai essayer de mettre des fonctions pour optimiser windows et désactiver la barre d'outils, optimisation de la partie échoue; si la barre d'outils de la partie est commentée, puis optimiser la partie de travail sur ok. Il ne prend même pas la question de ce que les solutions que j'utilise (parmi les 4 que j'ai énuméré).


Solution: (ou au moins ce qu'est le travail pour moi maintenant)

C'est probablement un bug dans Emacs. La solution est de désactiver la barre d'outils par le biais du Registre, pas dans .emacs. Enregistrer les éléments suivants .fichier reg, et exécuter ce fichier dans l'Explorateur Windows:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\GNU\Emacs]
"Emacs.Toolbar"="-1"

(Cette solution est une version de travail de ce OtherMichael suggéré).

25voto

Michael Paulukonis Points 4757

J'ai trouvé une réponse d'un an-ou-donc, retour qui explique que vous avez à manipuler la base de registre afin de faire la part des choses:

Pour lancer Emacs agrandie mettre cette ligne à la fin de votre ~/.emacs fichier:

(w32-send-sys-command 61488)

Si vous ne voulez pas l'Emacs de la barre d'outil vous pouvez ajouter la ligne (barre d'outils en mode -1) [NOTE: la valeur est 0 sur la page d'origine] à votre ~/.emacs fichier mais Emacs ne optimiser pleinement dans ce cas - la vraie immobilier occupé par la barre d'outils est perdu. Vous devez désactiver la barre d'outils dans le registre de la récupérer:

[HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\Emacs.Toolbar]
@="0"

Si vous regardez dans le EmacsWiki sous W32SendSys de commande codes que vous trouverez qu' 61488 est de maximiser l'image actuelle

12voto

Kenny Jensen Points 101

C'est le correctif le plus simple qui a fonctionné pour moi:

 (w32-send-sys-command #xf030)
(add-hook 'window-setup-hook (lambda () (tool-bar-mode -1)))
 

11voto

xaccrocheur Points 2083

Mecs, quel est le problème avec

emacs -mm ?

Cela commence Emacs entièrement optimisée. Le mettre dans votre raccourci, cela dépend vraiment sur le gestionnaire de fenêtre que vous utilisez ; je me suis juste un alias dans ma .*cedh.

Sur un autre, mais pas sans rapport avec la note, en fait, j'ai commencer à Emacs dans un sens que si elle est déjà commencé, le fichier sélectionné est juste a ouvert un nouveau tampon dans mon Emacs session :

if [ "$(pidof emacs)" ] ; then
    emacsclient "$@"
else
    emacs -mm "$@"
fi

Ce que j'ai mis dans un ~/bin/e et je viens de lancer Emacs avec un "e". J'ai cliqué droit d'un fichier texte dans le gestionnaire de fichier, choisis "ouvrir avec un autre programme" et l'entrée "e", et maintenant, j'ai juste double-cliquez sur les fichiers et ils ont tous ouvert parfaitement dans la même session.

Et tout est peachy et lispy :)

3voto

prewett Points 265

Tout d’abord, merci pour le conseil concernant le bogue avec (tool-bar-mode -1); m'a sauvé beaucoup de peine! Je préfère conserver tout le contenu du fichier .emacs (aucun mod de registre pour moi), donc si vous activez la barre d'outils avant de la maximiser, puis la désactivez à nouveau, vous pourrez agrandir au mieux:

 (defun maximize-current-frame () "Resizes the current frame to fill the screen"
    (interactive)
    ;; There is a bug in tool-bar-mode that prevents it from being
    ;; maximized, so turn it on before maximizing.
    ;; See http://stackoverflow.com/questions/815239/how-to-maximize-emacs-on-windows-at-startup)
    (tool-bar-mode 1)
    (w32-send-sys-command 61488)
    (tool-bar-mode -1)
)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X