Я также хочу сохранить размер шрифта в моем файле .emacs.
Это самый простой ответ, который сработал для меня stackoverflow.com/a/6050987/215094
Новичок, используйте .emacs.d/init.el, что лучше (более чистый и лучший контроль версий)





Нажмите Shift и первую кнопку мыши. Вы можете изменить размер шрифта следующим образом: Этот сайт содержит более подробную информацию.
@AndrewLarned Чтобы сделать изменение постоянным, вы должны внести изменения в свой файл .emacs. (См. Ответ Криса Конвея для примера того, что у него есть в его файле .emacs.)
Есть ли способ контролировать, насколько при этом увеличивается или уменьшается шрифт?
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.
FWIW, сопровождающий emacs (предположительно "продвинутый" пользователь emacs) использует систему настройки: github.com/jwiegley/dot-emacs/blob/…
У меня в .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.
@TomBrito Какой автозаполнение? В моем Emacs set-face-attribute действительно отсутствует в M-x (execute-extended-command), но он присутствует в M-: (eval-expression) и C-h f (describe-function). M-:, вероятно, то, что вам нужно, если вы не хотите помещать это в свой файл .emacs.
@ RoryO'Kane Почему некоторые команды недоступны через M-x? Вопрос нуба, я уверен, но я не знаком с тем, как emacs "работает" на низком уровне
@DavidS Хороший вопрос. Я написал ответ на «Почему некоторые функции Emacs недоступны через M-x?». Поиск ответа оказался поучительным.
Это решение не работает, если вы настроили некоторые лица, например чтобы иметь четкий шрифт, наклон и т. д. Для них останется старый размер, и вы должны установить их индивидуально.
В 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-"
Это локально для этого конкретного буфера. Поэтому, когда вы переключаетесь на другие файлы, которые редактируете, они не увидят эффекта от этого изменения. Также, когда вы закрываете и снова открываете буфер (или даже перезапускаете Emacs), они будут иметь старый размер по умолчанию. Это может быть то, что вы хотите; Я просто заявляю это для полноты картины.
OP хочет сохранить конфигурацию в .emacs, но этого не происходит.
работает в интерфейсе spacemacs (в macos), установить в init.el - stackoverflow.com/a/296316/432903
Все зависит от того, что вы подразумеваете под изменением размера шрифта. Этот раздел EmacsWiki предоставляет самую лучшую и полную информацию. Он различает различные случаи (масштабирование текста, шрифт кадра, буфер / кадр и т. д.): Изменение размера шрифта.
Если вы довольны консольным emacs (emacs -nw), современные реализации vterm (например, gnome-terminal), как правило, имеют лучшую поддержку шрифтов. К тому же, если вы к этому привыкнете, вы сможете использовать tmux, и тогда работа со всей вашей средой на удаленных серверах станет возможной даже без сертификатов X.
Откройте emacs в X11, перейдите в меню «Параметры», выберите «Установить шрифт по умолчанию ...», измените размер шрифта. В том же меню выберите «параметры сохранения». Сделанный.
Изменения не сохранятся, если я перезапущу emacs.
есть опция "сохранить параметры" ...
В AquaMacs CMD + и CMD - отрегулируйте размер шрифта для текущего буфера.
zoom.cfg и global-zoom.cfg предоставляют привязки изменения размера шрифта (из EmacsWiki)
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, поскольку номера строк в желобе впоследствии могут быть обрезаны.
Это потрясающе! Большое спасибо.
Я использую пакет гидра для непрерывного управления увеличением / уменьшением шрифта, нажимая 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)
Это будет (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) в моей версии emacs (25)
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))))))
см. также: stackoverflow.com/questions/2091881/…