屏幕边缘前的Emacs连续行



我希望Emacs在指定的列(比如第80列(显示一个换行符,而不是在屏幕边缘。这可能吗?我知道我可以使用visual-line-mode,并可能将其配置为以某个预定义的宽度软断线,但我更喜欢处理逻辑线,因此不喜欢使用visual-line-mode

设置窗口边距或多或少可以做到这一点,但这会导致一些问题(至少会干扰拆分窗口(。

如果你想深入挖掘,这可能是一个起点。

(defvar my-right-margin-column 80
"Used by `my-right-margin-update'.")
(defun my-right-margin-update ()
"Make the right margin occupy all space beyond `my-right-margin-column'.
See `my-right-margin-auto-update'."
(set-window-margins
nil 0 (max 0 (- (+ (window-text-width)
(or (cdr (window-margins)) 0))
my-right-margin-column)))
(set-window-parameter nil 'min-margins '(0 . 0)))
(defun my-right-margin-auto-update ()
"Configure buffer-local `window-configuration-change-hook'."
(add-hook 'window-configuration-change-hook
#'my-right-margin-update nil :local))
(add-hook 'text-mode-hook #'my-right-margin-auto-update)

最新更新