Я использую следующий фрагмент, чтобы установить 1-символьное поле для обоих краев буфера Emacs ( благодаря zev! ):
(add-hook 'window-configuration-change-hook
(lambda ()
(set-window-margins (car (get-buffer-window-list (current-buffer) nil t)) 1 1)))
Однако мне также хотелось бы иметь другую конфигурацию, которая дает мне очень широкие поля слева и справа (скажем, 30 символов). Как я могу назначить горячую клавишу для переключения между этими двумя состояниями, возможно по всем буферам ?
Я попробовал следующее:
(global-set-key [(control f10)]
(add-hook 'window-configuration-change-hook
(lambda ()
(set-window-margins (car (get-buffer-window-list (current-buffer) nil t)) 30 30))))
Но получил эту ошибку:
Wrong type argument: commandp, ((lambda nil (set-window-margins (car (get-buffer-window-list (current-buffer) nil t)) 30 30)) (lambda nil (set-window-margins (car (get-buffer-window-list (current-buffer) nil t)) 1 1)) frame-local-variables-check)
Где я не прав? Спасибо за любые объяснения. Ура!
EDIT:
Мне хорошо известен режим темной комнаты , который обеспечивает такие широкие поля. Но, похоже, он не работает безупречно на моей XP.