Ответ 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))
Мой 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*
он снова сбрасывается обратно на маленький по умолчанию.
Может ли кто-нибудь помочь мне исправить вышеуказанный код, чтобы он "застревал" при запуске?
Вот что я использую в своем ~/.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))
Вы пробовали это: emacs -geometry 110x58 + 200 + 2 &
Найдено по адресу:
(setq initial-frame-alist '(
(top . 40) (left . 10)
(width . 128) (height . 68)
)
)
Между 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
Для emacs в Windows я обычно помещаю его в реестр.
HKCU\Software\GNU\Emacs\
Emacs.Geometry REG_SZ "245x74"
(Это сохраняет локально установленные локальные настройки из моего файла .emacs, который я разделяю со многими другими машинами...)
Ни одно из вышеперечисленных решений не могло решить мою проблему с изменением размера, поэтому я решил поделиться дополнительным решением: при запуске 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.