Подтвердить что ты не робот

Привязать ключ для увеличения/уменьшения размера шрифта в emacs

В моем терминале (terminator) я могу использовать комбинации клавиш Ctrl + и Ctrl - для увеличения/уменьшения размер шрифта.

В emacs я могу сделать следующее, чтобы установить высоту шрифта:

(set-face-attribute 'default nil :height 70)

Но я не знаю, как увеличить/уменьшить его. Как я могу легко добавить это в мою конфигурацию emacs?

4b9b3361

Ответ 1

Я думаю, что вы хотите C-x C-+ или C-x C--.

Ответ 2

Я бы предложил:

(global-set-key (kbd "C-+") 'text-scale-increase)
(global-set-key (kbd "C--") 'text-scale-decrease)

В то время как ключевые слова по умолчанию, упомянутые @Stefan, выполняют эту работу, мне также нравятся более распространенные привязки клавиш. Btw, C-x C-= также увеличивает размер шрифта, а C-x C-0 восстанавливает размер шрифта по умолчанию.

Ответ 3

C-x C-+ и C-x C-- дает вам только часть ответа: текстовое масштабирование буфера.

Вы можете изменить размер шрифта для данного фрейма (для всех окон/буферов в этом фрейме), или вы можете изменить (видимый) размер шрифта для заданного буфера (через все окна/фреймы). Последнее называется масштабированием текста, и это то, что дает вам ваниль Emacs C-x C-+ и C-x C--.

Библиотека zoom-frm.el дает вам оба вида масштабирования с помощью той же самой команды. Привяжите ту же команду, zoom-in/out, к C-x C-- и C-x C-+. Он масштабирует либо фрейм, либо буфер, вход и выход. Обычный префикс arg переключает между масштабированием кадров и масштабированием буферов. Привяжите его также к клавишам мыши (я использую S-mouse-1 (in) и C-S-mouse-1 (out) и к колесу мыши (в/из).

Библиотека face-remap+.el исправляет масштабирование текста, чтобы размер окна уменьшался или увеличивался с учетом изменения размера текста, что может освободить экран реального времени недвижимости.

Эта страница EmacsWiki содержит больше информации об этом часто задаваемом вопросе.

Ответ 4

И для изменения колесика мыши с нажатой клавишей управления:

(global-set-key [C-mouse-4] '(lambda () (interactive) (text-scale-increase 1)))
(global-set-key [C-mouse-5] '(lambda () (interactive) (text-scale-decrease 1)))

Это работает нормально, но он буферизуется локально. Следующий код изменяет высоту шрифта фрейма для всех буферов с контролем + колесом мыши/трекпадом:

(defun change-font-height (delta)
  (set-face-attribute 'default 
                      (selected-frame)
                      :height (+ (face-attribute 'default :height) delta)))
(global-set-key [C-mouse-4] '(lambda () (interactive) (change-font-height +4)))
(global-set-key [C-mouse-5] '(lambda () (interactive) (change-font-height -4)))

Ответ 5

Проверьте purcell.emacs.d и его шрифт utils.