屏幕边缘之前的 Emacs 续行
Emacs continuation lines before screen edge
我希望 Emacs 在指定列(比如第 80 列)而不是屏幕边缘显示续行符。这可能吗?我知道我可以使用 visual-line-mode
并可能将其配置为以某个预定义的宽度软断行,但我更喜欢处理逻辑行,因此不希望使用 visual-line-mode
.
设置 window 边距或多或少可以做到这一点,但这会导致一些问题(至少,它会干扰拆分 windows)。
如果您想深入挖掘,这可能是一个起点。
(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)
我希望 Emacs 在指定列(比如第 80 列)而不是屏幕边缘显示续行符。这可能吗?我知道我可以使用 visual-line-mode
并可能将其配置为以某个预定义的宽度软断行,但我更喜欢处理逻辑行,因此不希望使用 visual-line-mode
.
设置 window 边距或多或少可以做到这一点,但这会导致一些问题(至少,它会干扰拆分 windows)。
如果您想深入挖掘,这可能是一个起点。
(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)