Как я могу установить шрифт по умолчанию в Emacs?

31

Я не могу установить Inconsolata в качестве шрифта по умолчанию в Emacs 24.4 Linux.

  • Я изменил шрифт в меню -> Сохранить параметры. Шрифт изменился, но после перезапуска он стал таким же, как и по умолчанию.
  • Добавил это в ~/.Xresources: Emacs.font: Inconsolata LGC

    Тогда в init.el: (set-default-font "Inconsolata LGC"). Та же история.

Что я делаю не так?

Maglight
источник
Если шрифт работает, когда вы его устанавливаете, но снова пропадает при следующей загрузке emacs, это может быть проблемой с сохранением (или отсутствием) ваших настроек.
Ниспио
Я использую emacsclient с emacs, запущенным как демон. Я меняю настройки в init.el и после сохранения перезагружаю демон.
Maglight
2
Это специфично для Emacs 24.4? IOW, вы получаете другое поведение в другой сборке / выпуске? Если нет, рассмотрите возможность удаления ссылки на 24.4.
Дрю
Поскольку вы запускаете emacs в качестве демона, проверьте все выходные данные консоли при вызове emacs --daemonи убедитесь, что нет сообщений об ошибках.
Ниспио
У меня есть это в моем init.el: (set-frame-font "Ubuntu Mono 11")
thdox

Ответы:

30

В моем .emacs, использующем Emacs для OSX, есть следующее:

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :family "Inconsolata")))))

Установка шрифта

Легче установить шрифт с помощью меню, если вы запускаете Emacs в графической среде. Используйте «Опции -> Установить шрифт по умолчанию ...» из меню.

Теперь вы еще не закончили, потому что вы только временно изменили шрифт. Самый простой способ, который я знаю, это использовать режим настройки.

M-x customize-face RET default RET

Теперь измените параметры, которые вы хотите изменить, если таковые имеются. Если вы уже изменили шрифт с помощью меню, вы должны увидеть свои изменения здесь.

Сохранение в ваш файл инициализации

Сохранить для будущих сессий :

  • Нажмите на кнопку State и выберите Save For Future Sessions

или

  • C-x C-s в то время как в буфере настройки, который воля должен делать то же самое, но не всегда работает, например, после(set-default-font "Inconsolata")

Если все остальное не удается...

Вам может повезти со страницей Set Fonts .

Харви
источник
16

Я использую это в моем init.el:

;; Set default font
(set-face-attribute 'default nil
                    :family "Source Code Pro"
                    :height 110
                    :weight 'normal
                    :width 'normal)

Вы можете попробовать то же самое, используя Inconsolata вместо Source Code Pro.

Boccaperta-IT
источник
Добавил это в init.el. После перезапуска все еще шрифт по умолчанию.
Maglight
Вы ввели "InconsolataLGC" без пробела между "Inconsolata" и "LGC"?
Boccaperta-IT
Да, я также пытался установить его на Terminus.
Maglight
1
Попробуйте запустить fc-cache -fvс вашего терминала. Возможно, кэш шрифтов не обновлен. Я попытался установить Anonymous Pro, и он работает на моем.
Boccaperta-IT
Спасибо, но это не помогло. Я могу установить этот шрифт, но Emacs не сохраняет его в будущих сессиях.
Maglight
12

Если вы что-то изменили в файле .Xresources, вам нужно перечитать его, чтобы увидеть какие-либо изменения в текущем сеансе.

  • Чтобы сохранить старые настройки ресурсов и применить новые:

    xrdb -merge ~/.Xresources
    
  • Чтобы выбросить ваши старые ресурсы и применить только настройки из .Xresources :

    xrdb ~/.Xresources
    

Корректировки в файле .Xresources лучше, потому что они применяются перед отображением окна X11 в emacs. Настройки в файлах инициализации (.emacs, .emacs.d /) повторно применяются к уже созданному окну. Например, вы можете избежать «мерцания» панелей инструментов во время запуска при добавлении

! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC:size=16

в ваш файл .Xresources .

Вы можете проверить, что еще доступно на https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resources.html.

kmicu
источник
5

Это всегда работает всякий раз, когда я хочу попробовать другие шрифты (поместите его в файл init.el или .emacs):

(push '(font . "Inconsolata") default-frame-alist)

или

(add-to-list 'default-frame-alist '(font . "Inconsolata"))

В этом случае оба выражения эквивалентны.

Вкратце, эти формы устанавливают шрифт для текущего и всех будущих фреймов Emacs. Так как они сохраняются в вашем файле конфигурации, установка не теряется при перезапуске.

undostres
источник