Программная установка размера кадра 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* он снова возвращается к маленькому значению по умолчанию.

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

См. Также этот предыдущий вопрос: Как мне установить размер окна emacs?

Chris Conway 03.12.2008 01:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
28
1
8 818
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

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

Ответ принят как подходящий

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

Я отказался от этой проблемы некоторое время назад, используя ваш код, наконец, исправил ее :)

Rene Saarsoo 06.12.2008 22:42

немного аккуратнее: (setq default-frame-alist '( (left . 0) (top . 0) (height . 65) (width . 100) ))

Paul 05.04.2016 06:05

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

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

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

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

Между 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

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

Другие вопросы по теме