Я историк, пытающийся настроить Emacs для эффективной работы академических работ. С этой целью я решил добавить поля в буфер Emacs. Конечный результат выглядит this, и было достигнуто с помощью этого кода:Emacs: как установить поля для автоматической настройки в режиме разделения экрана?
;; Margins function
(defun my-set-margins()
"Set margins in current buffer."
(setq left-margin-width 26)
(setq right-margin-width 26))
;; Add margins by default to a mode
(add-hook 'org-mode-hook 'my-set-margins)
Проблема заключается в том, что, когда я разделить экран по вертикали, поля сделать текст нечитаемым. Итак, я пришел к выводу, что необходимо либо (1), чтобы Emacs автоматически удалял поля автоматически во время вертикального разделения экрана и откладывал их обратно на одном экране; или (2) создать комбинацию клавиш для переключения полей. Любые идеи о том, как это сделать? Заранее спасибо!
Слишком много возможностей, возникающих при разбиении окон на то, чтобы написать на их основе решение * general *, поэтому я выбрал второй вариант, который является простым переключением. Вы могли бы просто написать свою собственную функцию, которая разбивает окно в указанном направлении, а затем устанавливает поля и другую функцию «delete-other-windows», а затем задает поля. – lawlist
Например: '(defun foo()« Doc-string. »(Интерактивный) (delete-other-windows) (setq left-margin-width 0) (setq right-margin-width 0) (set-window-buffer (selected-window) (current-buffer))) – lawlist
Как вы обнаружили, настройка статического значения для конкретной геометрии окна плохо работает, когда геометрия фактически является динамической. Я предлагаю вам удалить привязку с крючка и вызвать его вручную, когда вы находитесь в ситуации, когда вы хотите этого поведения. Возможно, добавьте вторую функцию, чтобы вернуть ее обратно по умолчанию, когда вы хотите изменить размер своего окна. – tripleee