2008-12-02 11 views
26

Meine Emacs (unter Windows) startet immer mit einer eingestellten Größe, die ziemlich klein ist, und wenn ich die Größe ändere, wird es beim nächsten Start nicht "erinnert".Programmgesteuert Emacs Rahmengröße

Ich habe mit den folgenden Spielen:

(set-frame-position (selected-frame) 200 2) ; pixels x y from upper left 
(set-frame-size (selected-frame) 110 58) ; rows and columns w h 

, die vollständig funktioniert, wenn ich es in den Puffer Grund auf neu auszuführen. Ich lege es in meine .emacs, und obwohl ich jetzt, wenn ich das Programm starte, sehe ich den Frame vorübergehend auf diese Größe eingestellt, bis die *scratch* lädt, wird es wieder auf den kleinen Standard zurückgesetzt.

Kann mir jemand helfen, den obigen Code zu reparieren, damit er beim Start "klebt"?

+0

Siehe auch diese vorherige Frage: [Wie stelle ich die Größe des Emacs-Fensters ein?] (Http: // stackoverflow.com/questions/92971/how-do-ich-set-the-Größe-von-Emacs-Fenster) –

Antwort

36

Hier ist, was ich in meinem ~/.emacs:

(add-to-list 'default-frame-alist '(left . 0)) 
(add-to-list 'default-frame-alist '(top . 0)) 
(add-to-list 'default-frame-alist '(height . 50)) 
(add-to-list 'default-frame-alist '(width . 155)) 
+2

Ich hatte auf dieses Problem vor einer Weile aufgegeben, mit Ihrem Code behoben es schließlich :) –

+1

ein bisschen sauberer: '(setq default-frame-alist '((links. 0) (oben. 0) (Höhe. 65) (Breite. 100)))' – Paul

2

Für Emacs auf Windows, stelle ich es in der Regel in die Registrierung.

HKCU\Software\GNU\Emacs\ 
    Emacs.Geometry REG_SZ "245x74" 

(Dies hält maschinen lokalen Einstellungen aus meiner .emacs-Datei, die ich mit vielen anderen Maschinen teilen ...)

3
(setq initial-frame-alist '(
      (top . 40) (left . 10) 
      (width . 128) (height . 68) 
      ) 
) 
3

Zwischen Emacs 19 und 21, habe ich ein Baby haben perfekt funktionierende .emacs, die genau haben, was Sie suchen, um zwischen Standard-Rahmen und Ausgangsrahmen zu unterscheiden:

(setq default-frame-alist '((foreground-color . "LightGray") 
        (background-color . "Black") 
        (cursor-color . "Medium Sea Green") 
        (width . 80) 
        (height . 36) 
        (menu-bar-lines . 1) 
        (vertical-scroll-bars . right))) 

und

(setq initial-frame-alist 
       (cons '(width . 96) 
         (cons '(height . 72) 
         (cons '(menu-bar-lines . 1) 
          initial-frame-alist)))) 

Leider, als ich zu Emacs 23.2 "verbesserte", ist das oben nicht mehr voll. Emacs ist nicht meine Karriere. Ich benutze es als Werkzeug, also kann ich nicht zu viel Zeit darauf verwenden, zu verstehen, warum. Also habe ich einfach das Problem gelöst, indem ich die Emacs Windows XP Verknüpfung "-geometry 96x72" hinzugefügt habe. So, jetzt das Verknüpfungsziel aussieht:

C:\emacs-23.2\bin\runemacs.exe -geometry 96x72 
2

Keine der entsandten Lösungen vor meinem Redimensionierung Problem lösen könnte, so dass ich dachte, ich würde eine zusätzliche Lösung teilen: beim Start-up, Emacs 23 verwendet eine bestimmte Schriftart, bevor Wechsel zu dem benutzerdefinierten; Wenn diese Schriftart groß ist, reduziert Emacs die Fenstergröße, damit es in dem Bildschirm passt. Dann wird die Benutzerschriftart angewendet, und das Fenster erscheint möglicherweise kleiner als vom Benutzer gewünscht. Somit folgt die Zugabe in meiner ~/.Xresource löste das Problem:

Emacs.font: -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* 
Emacs.pane.menubar.*.fontList: 8x16 
Emacs.menu*.fontList:   -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* 
Emacs.dialog*.fontList:  -*-fixed-*-*-*-*-8-*-*-*-*-*-*-* 

Dies macht Emacs eine kleine Schrift während des Anlaufs zu verwenden, so dass das Fenster nicht zu groß ist und nicht abgeschnitten. Natürlich können Sie die gewünschte Schriftart hier oder in der Emacs-Init-Datei anpassen.

Verwandte Themen