Question

J'utilise les mêmes .emacs sur plusieurs machines, systèmes d'exploitation et plates-formes. Je voudrais que la taille de l'image par défaut d'Emacs sur l'invocation d'être par rapport à la taille de l'écran disponible (par exemple 96 lignes fonctionnent très bien sur un écran de bureau 1600x1200, mais sur un ordinateur portable 1280x800 je dois spécifier pas plus de 68 lignes).

Y at-il une expression emacs-Lisp qui retourne la largeur et la hauteur de l'écran du système?

Mise à jour: Je viens de trouver un question similaire , mais pour une raison quelconque, ni (x-affichage pixels de largeur), ni (affichage pixels de largeur) peut être trouvée dans mon GNU Emacs 23.2 sur le système Windows XP. Continuer à la recherche ...

Était-ce utile?

La solution

Je suis en cours d'exécution sur Gnu Emacs 23.2.1 XP Pro, et les fonctions

(x-display-pixel-width)

et

(x-display-pixel-height) 

travaillent tous deux très bien. Ils font partie de la source de c, et doivent être présents.

Vous pouvez exécuter emacs en dehors d'un terminal il confiance?

Voici la documentation de mes emacs actuels:

x-display-pixel-height est une fonction intégrée dans `code source de C ».

(x-display-pixel-height &optional TERMINAL)

Retour à la hauteur en pixels de l'affichage X TERMINAL. Les spécifie TERMINAL argument optionnel qui affichage à poser au sujet. TERMINAL doit être un objet terminal, un cadre ou un nom d'affichage (une chaîne). En cas d'omission ou nul, qui signifie l'affichage de l'image sélectionnée.

En outre, j'ai une bibliothèque complète de fonctions de commodité pour vous aider à dimensionner et déplacer le cadre emacs, si vous êtes intéressé.

Autres conseils

Je fais une mauvaise façon, pour une version quelque peu plus.

(tool-bar-mode nil)

(mapc (lambda (x) (add-to-list 'default-frame-alist x))
   (list
          (cons 'top 0) (cons 'left 0)
          (cons 'font "-outline-Courier New-normal-r-normal-normal-11-82-96-96-c-*-iso10646-1")
          (cons 'height 67) (cons 'width 176)
))

Le cadre par défaut est construit après l'exécution de .emacs, la valeur par défaut-frame-alist. Je ne l'ai jamais entendu parler de la première-frame-alist.

Merci à la réponse et les commentaires de Chris et Scott, je suis parvenu à trouver la ligne de travail suivante dans mes .emacs:

(set-frame-size  (selected-frame)  96 (/ (* (x-display-pixel-height) 46) 600) ) 

Il fonctionne bien quand je ne eval-tampon sur la emacs, mais quand je double-cliquez sur le raccourci Emacs Windows XP, cette déclaration est complètement ignorée.

Je sais que (cadre choisi) n'est pas le (cadre initial) alors j'ai essayé cela aussi:

(setq initial-frame-alist
    '((top . 1) (left . 288) (width . 96) (height . (/ (* (x-display-pixel-height) 46) 600))))

Mais il ne fonctionne que quand je fais eval-tampon sur la lecture emacs. Il ne fonctionne pas lorsque Emacs est démarré (soit à partir de la ligne de commande ou en double-cliquant sur son raccourci). Bizarre.

Mise à jour: J'ai fini par régler la taille initiale de la commande d'appel dans le champ Cible du raccourci:

C:\emacs-23.2\bin\runemacs.exe -geometry 96x78+240+0

Une solution laide, je sais, mais actuellement c'est la seule solution qui fait l'affaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top