Программная настройка размера кадра Emacs - PullRequest
27 голосов
/ 03 декабря 2008

Мой emacs (в Windows) всегда запускается с заданным размером, который довольно мал, и если я изменяю его размер, он не «запоминается» при следующем запуске.

Я играл со следующим:

(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

, который полностью работает, когда я выполняю его в чистом буфере. Я поместил его в мой .emacs, и хотя теперь, когда я запускаю программу, я вижу, что фрейм временно установлен на этот размер, к моменту загрузки *scratch* он снова сбрасывается до небольшого значения по умолчанию.

Может кто-нибудь помочь мне исправить приведенный выше код, чтобы он "зависал" при запуске?

Ответы [ 6 ]

38 голосов
/ 03 декабря 2008

Вот что я использую в своем ~/.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))
4 голосов
/ 26 февраля 2009
(setq initial-frame-alist '(
            (top . 40) (left . 10)
            (width . 128) (height . 68)
            )
  )
3 голосов
/ 19 ноября 2010

Ни одно из ранее опубликованных решений не могло решить мою проблему с изменением размера, поэтому я решил поделиться дополнительным решением: при запуске Emacs 23 использует определенный шрифт перед переключением на определенный пользователем; как следствие, если этот шрифт большой, Emacs также уменьшает размер окна , чтобы он помещался на экране. Затем применяется пользовательский шрифт, и окно может выглядеть меньше, чем желаемый пользователем. Таким образом, добавление следующего в мой ~ / .Xresource решило проблему:

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

Это заставляет Emacs использовать маленький шрифт во время запуска, так что его окно не слишком большое и не усекается. Конечно, вы можете настроить нужный шрифт здесь или в файле инициализации Emacs.

3 голосов
/ 03 декабря 2008

Вы пробовали это: emacs -geometry 110x58 + 200 + 2 &

Найдено по адресу:

http://web.mit.edu/answers/emacs/emacs_window_size.64R.html

2 голосов
/ 18 августа 2010

Между Emacs 19 и 21 у меня был отлично работающий .emacs, который делал именно то, что вы ищете, различая default-frame и initial-frame:

  (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)))

и

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

Увы, когда я «обновился» до Emacs 23.2, вышеописанное больше не полностью. Emacs - это не моя карьера. Я использую его как инструмент, поэтому я не могу уделять слишком много времени изучению причин. Поэтому я просто решил эту проблему, добавив в Emacs Windows XP ярлык «-geometry 96x72». Теперь цель ярлыка выглядит так:

C:\emacs-23.2\bin\runemacs.exe -geometry 96x72
1 голос
/ 03 декабря 2008

Для emacs на windows я обычно ставлю его в реестр.

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

(Это сохраняет локальные настройки машины из моего файла .emacs, которым я делюсь со многими другими машинами ...)

...