Как установить размер шрифта в Emacs?

Я также хочу сохранить размер шрифта в моем файле .emacs.

см. также: stackoverflow.com/questions/2091881/…

Michael Paulukonis 25.03.2011 16:41

Это самый простой ответ, который сработал для меня stackoverflow.com/a/6050987/215094

Zeynel 18.12.2013 22:24

Новичок, используйте .emacs.d/init.el, что лучше (более чистый и лучший контроль версий)

X.Creates 08.04.2016 11:35
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
352
3
207 441
17
Перейти к ответу Данный вопрос помечен как решенный

Ответы 17

Нажмите Shift и первую кнопку мыши. Вы можете изменить размер шрифта следующим образом: Этот сайт содержит более подробную информацию.

@AndrewLarned Чтобы сделать изменение постоянным, вы должны внести изменения в свой файл .emacs. (См. Ответ Криса Конвея для примера того, что у него есть в его файле .emacs.)

Ram Narasimhan 24.05.2012 07:16

Есть ли способ контролировать, насколько при этом увеличивается или уменьшается шрифт?

Mauricio A. Cinelli 13.11.2013 16:35

M-x customize-face RET default позволит вам установить лицо default лица, на котором основываются все остальные грани. Здесь вы можете установить размер шрифта.

Вот что есть в моем .emacs. на самом деле цветовая тема задает основы, тогда мои пользовательские настройки лица переопределят некоторые вещи. custom-set-faces записывается механизмом customize-face emacs:

;; my colour theme is whateveryouwant :)
(require 'color-theme)
(color-theme-initialize)
(color-theme-whateveryouwant)

(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 98 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))))
 '(font-lock-comment-face ((t (:foreground "darkorange4"))))
 '(font-lock-function-name-face ((t (:foreground "navy"))))
 '(font-lock-keyword-face ((t (:foreground "red4"))))
 '(font-lock-type-face ((t (:foreground "black"))))
 '(linum ((t (:inherit shadow :background "gray95"))))
 '(mode-line ((t (nil nil nil nil :background "grey90" (:line-width -1 :color nil :style released-button) "black" :box nil :width condensed :foundry "unknown" :family "DejaVu Sans Mono")))))

Многие продвинутые пользователи emacs предпочитают не использовать систему настройки, поскольку она подвержена ошибкам и смешивает все настройки. Лучше разбить вашу настройку на отдельные файлы .el и загрузить их из init.el, и добавить свои настройки режима как код elisp в каждый из них. См. Ответ huaiyuan выше, чтобы узнать, как установить шрифт через elisp.

EdwardGarson 19.06.2013 06:28

FWIW, сопровождающий emacs (предположительно "продвинутый" пользователь emacs) использует систему настройки: github.com/jwiegley/dot-emacs/blob/…

Ben 13.03.2018 20:02

У меня в .emacs есть следующее:

(defun fontify-frame (frame)
  (set-frame-parameter frame 'font "Monospace-11"))

;; Fontify current frame
(fontify-frame nil)
;; Fontify any future frames
(push 'fontify-frame after-make-frame-functions) 

Вы можете заменить "Monospace-11" любым шрифтом по вашему выбору. Набор доступных опций сильно зависит от системы. Использование M-x set-default-font и просмотр заполненных вкладок дадут вам некоторые идеи. В моей системе с Emacs 23 и включенным сглаживанием я могу выбирать системные шрифты по имени, например, Monospace, Sans Serif и т. д.

Ответ принят как подходящий
(set-face-attribute 'default nil :height 100)

Значение находится в 1/10 пункта, поэтому 100 даст вам 10 пунктов и т. д.

Я пытаюсь это сделать, но в Emacs 23.1.1 автозаполнение покажет только параметры set-face-background set-face-font set-face-inverse-video-p set-face-underline set-face-background-pixmap set-face-foreground set-face-stipple set-face-underline-p.

The Student 24.01.2013 16:38

@TomBrito Какой автозаполнение? В моем Emacs set-face-attribute действительно отсутствует в M-x (execute-extended-command), но он присутствует в M-: (eval-expression) и C-h f (describe-function). M-:, вероятно, то, что вам нужно, если вы не хотите помещать это в свой файл .emacs.

Rory O'Kane 09.05.2013 18:20

@ RoryO'Kane Почему некоторые команды недоступны через M-x? Вопрос нуба, я уверен, но я не знаком с тем, как emacs "работает" на низком уровне

DavidS 06.03.2015 23:53

@DavidS Хороший вопрос. Я написал ответ на «Почему некоторые функции Emacs недоступны через M-x?». Поиск ответа оказался поучительным.

Rory O'Kane 23.03.2015 00:05

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

Hi-Angel 28.01.2019 11:22

В NTEmacs 23.1 в меню «Параметры» есть параметр «Установить шрифт по умолчанию ...».

Начиная с Emacswiki, GNU Emacs 23 имеет встроенную комбинацию клавиш:

C-xC-+ and C-xC-- to increase or decrease the buffer text size

или "C-x C- =’ и "C-x C-"

HongboZhu 19.03.2012 19:37

Это локально для этого конкретного буфера. Поэтому, когда вы переключаетесь на другие файлы, которые редактируете, они не увидят эффекта от этого изменения. Также, когда вы закрываете и снова открываете буфер (или даже перезапускаете Emacs), они будут иметь старый размер по умолчанию. Это может быть то, что вы хотите; Я просто заявляю это для полноты картины.

ShreevatsaR 22.05.2012 08:43

OP хочет сохранить конфигурацию в .emacs, но этого не происходит.

xwl 05.03.2015 19:42

работает в интерфейсе spacemacs (в macos), установить в init.el - stackoverflow.com/a/296316/432903

prayagupd 01.10.2018 08:26

Все зависит от того, что вы подразумеваете под изменением размера шрифта. Этот раздел EmacsWiki предоставляет самую лучшую и полную информацию. Он различает различные случаи (масштабирование текста, шрифт кадра, буфер / кадр и т. д.): Изменение размера шрифта.

Если вы довольны консольным emacs (emacs -nw), современные реализации vterm (например, gnome-terminal), как правило, имеют лучшую поддержку шрифтов. К тому же, если вы к этому привыкнете, вы сможете использовать tmux, и тогда работа со всей вашей средой на удаленных серверах станет возможной даже без сертификатов X.

Откройте emacs в X11, перейдите в меню «Параметры», выберите «Установить шрифт по умолчанию ...», измените размер шрифта. В том же меню выберите «параметры сохранения». Сделанный.

Изменения не сохранятся, если я перезапущу emacs.

dips 07.02.2019 05:28

есть опция "сохранить параметры" ...

RichieHH 12.02.2021 18:08

В AquaMacs CMD + и CMD - отрегулируйте размер шрифта для текущего буфера.

zoom.cfg и global-zoom.cfg предоставляют привязки изменения размера шрифта (из EmacsWiki)

  • C- или C-колесико мыши вверх: увеличивает размер шрифта.
  • C- + или C-mousewheel-down: уменьшает размер шрифта.
  • C-0 возвращает размер шрифта по умолчанию.

Firefox и другие программы позволяют увеличивать и уменьшать размер шрифта с помощью C- + и C-. Я настроил свой .emacs так, чтобы у меня была такая же возможность, добавив следующие строки кода:

(global-set-key [C-kp-add] 'text-scale-increase)

(global-set-key [C-kp-subtract] 'text-scale-decrease)

Это еще одно простое решение. Также работает в 24

(set-default-font "Monaco 14")

Сокращения:

`C-+` increases font size
`C--` Decreases font size

Вот вариант для интерактивного изменения высоты шрифта, по одной точке за раз:

;; font sizes
(global-set-key (kbd "s- = ")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (+ old-face-attribute 10)))))

(global-set-key (kbd "s--")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (- old-face-attribute 10)))))

Это предпочтительнее, если вы хотите изменить размер текста в буферах все. Мне не нравятся решения с использованием text-scale-increase и text-scale-decrease, поскольку номера строк в желобе впоследствии могут быть обрезаны.

Это потрясающе! Большое спасибо.

Fomentia 28.03.2016 22:51

Я использую пакет гидра для непрерывного управления увеличением / уменьшением шрифта, нажимая f2 + + + + / f2 - - - -, что означает, что нажимаю f2 один раз, а затем использую + / - только для управления и восстанавливаю размер шрифта по умолчанию с помощью f2 0. Поскольку у меня есть клавиатура, я также привязываю клавиатуру к настройке шрифта.

(defhydra hydra-zoom (global-map "<f2>")
  "zoom"
  ("<kp-add>" text-scale-increase "in")
  ("+" text-scale-increase "in")
  ("-" text-scale-decrease "out")
  ("<kp-subtract>" text-scale-decrease "out")
  ("0" (text-scale-set 0) "reset")
  ("<kp-0>" (text-scale-set 0) "reset"))

Функциональность управления мышью в современном редакторе, поддерживаемая нижеприведенными привязками клавиш, нажмите Ctrl + колесо мыши, чтобы увеличить / уменьшить шрифт.

(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)

Не работают привязки клавиш колесика мыши, у меня версия GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)

Zelphir Kaltstahl 13.11.2015 20:45

Это будет (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) в моей версии emacs (25)

stefano 10.03.2017 01:07

Aquamacs:

(set-face-attribute 'default nil :font "Monaco-16" )

В Emacs Wiki Глобальное изменение шрифта по умолчанию говорится, что вы можете использовать любое из них:

(set-face-attribute 'default nil :font FONT )

(set-frame-font FONT nil t)

Где FONT - это что-то вроде "Monaco-16", например:

(set-face-attribute 'default nil :font "Monaco-16" )

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

Вот фрагмент, который позволяет напрямую указать глобальный размер шрифта с помощью интерактивной функции:

(defun set-font-size ()
    "Set the font size."
  (interactive)
  (set-face-attribute
   'default nil :height
   (string-to-number
    (read-string "Font size: " (number-to-string (face-attribute 'default :height nil))))))

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