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

Emacs увеличить/уменьшить масштаб глобально

Я знаю, что я могу увеличивать/уменьшать масштаб с помощью C-x C- +, но это относится только к текущему файлу. Как только я открою другой, текст вернется к значению по умолчанию, и очень утомительно делать это снова и снова. Как сохранить глобальный уровень масштабирования для текущего сеанса emacs?

Я знаю, что можно установить это в файле инициализации, если вы знаете точный размер шрифта, которого у меня нет. Кроме того, я не хочу сохранять это постоянным - мне обычно это нужно, когда у меня нет внешнего экрана в течение нескольких часов или подключено к лучу, пока вы даете презентацию.

4b9b3361

Ответ 1

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

(defadvice text-scale-increase (around all-buffers (arg) activate)
  (dolist (buffer (buffer-list))
    (with-current-buffer buffer
      ad-do-it)))

Ответ 2

Все ответы, приведенные здесь, и многое другое, доступны на Страница EmacsWiki, посвященная вопросу установки и изменения шрифта размер, включая изменение его пошагово.

Ответ от @abo-abo на правильном пути, независимо от того, вы думаете, что размер, который он использовал в примере кода, был слишком большим, и независимо от того, не разрешает ли решение инкрементное регулировка.

Ответ от @juanleon по сути делает симуляцию текста изменение размера символа по умолчанию (@abo-abo answer).

Точка масштабирования текста - это масштабирование текста буфера (один буфер, нет вопрос, где это показано), а не текст кадра (все буферы, показанные в рама). Но если вы хотите, чтобы все буферы имели свой размер текста изменен в данном фрейме, тогда нет причин беспокоиться о тексте масштабирование в этом случае: просто измените размер шрифта.

Вы можете сделать одно или оба (масштабируйте текст буфера всюду или масштабируйте кадр) и делать это постепенно, используя ту же команду, если вы используете команда zoom-in/out из библиотеки zoom-frm.el.

С другой стороны, если вы действительно хотите поэтапно изменить размер текста всех буферов во всех кадрах, тогда лучшие подходы либо (1) предложение @juanleon, либо (2) постепенно увеличивать стандартную сторону лица default.

Чтобы сделать последнее, вы можете использовать команды zoom-all-frames-in и zoom-all-frames-out в библиотеке zoom-frm.el

Ответ 3

Просто вставьте это в *scratch* и оцените (с помощью C-j или C-x C-e):

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

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

Ответ 4

Его можно масштабировать весь текст (включая строки состояния и номера строк), используя небольшой режим, который обрабатывает эту точную проблему: purcell/default-text-scale. Он доступен в Мелпе.

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

Другие ответы здесь либо не работают для новых буферов, либо требуют слишком большого ручного вмешательства.