我想在erc里(还有dashboard)的时候关闭global-display-number-mode 切到别的buffer里时又打开 有没有大佬提供点思路
global-display-number-mode
但凡读题就绝对会知道我的行号用的是什么模式
我这边有一个个人的解决方案
我启动erc用的是函数绑定 C-z TAB
所以在函数末尾加上 (display-line-numbers-mode -1)
就行
switch-buffer 加个advice, 然后判断不同的 major-mode 再决定是否开启 global-display-number-mode
(defun display-line-numbers--turn-on ()
"Turn on `display-line-numbers-mode'."
(unless (minibufferp)
(display-line-numbers-mode)))
;;;###autoload
(define-globalized-minor-mode global-display-line-numbers-mode
display-line-numbers-mode display-line-numbers--turn-on)
注意到它是这样实现的,因为可以通过修改display-line-numbers--turn-on
来达到目的。下面例子表示在原来的基础上加了限制,仅在prog-mode
下开启行号。
(define-advice display-line-numbers--turn-on (:override nil)
(unless (or (minibufferp) (not (derived-mode-p 'prog-mode)))
(display-line-numbers-mode)))