Подтвердить что ты не робот

Программная установка размера кадра Emacs

Мой 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* он снова сбрасывается обратно на маленький по умолчанию.

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

4b9b3361

Ответ 1

Вот что я использую в своем ~/.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))

Ответ 3

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

Ответ 4

Между Emacs 19 и 21 у меня были отлично работающие .emacs, которые сделали именно то, что вы искали, путем различения рамки по умолчанию и начального кадра:

  (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 не моя карьера. Я использую его как инструмент, поэтому я не могу уделять слишком много времени тому, чтобы понять, почему. Поэтому я просто работал над проблемой, добавив ярлык Emges Windows XP "-geometry 96x72". Таким образом, цель ярлыка теперь выглядит:

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

Ответ 5

Для emacs в Windows я обычно помещаю его в реестр.

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

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

Ответ 6

Ни одно из вышеперечисленных решений не могло решить мою проблему с изменением размера, поэтому я решил поделиться дополнительным решением: при запуске 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.