我正在使用以下代码段为 Emacs 缓冲区的两个边缘设置 1 个字符的边距(感谢 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)
我哪里错了?感谢您的任何解释。干杯!
编辑:
我很清楚暗房模式可以提供如此大的边距。但它似乎并不能在我的 XP 上完美运行。