没有对比过,不过以时间判断比较明显(反正只find-file时判断一次
可能会触发gc,肯定慢不少的。
company-mode
支持在 modeline 上显示当前的 candidate 是由哪个 backend 产生的,不知道这个能否支持呢?
如果没有这个功能的话,很难区分上图的第一个 main
是由 company-capf
提供的,第二个 main
是由 company-tempo
提供的。
这个是可以支持的。只是看backend意义不大,而且直接在company里显示是不是更自然?
直接开启 (setq doom-modeline-minor-modes t)
也可以达到相同的目的,但是它额外的显示了其他不想看到的 minor-mode。如果可以的话,是否支持仅显示部分的 minor-mode 呢?
曾经有 issue 提过想要直接在 company 的候选列表上面显示,但是似乎能够在 modeline 上显示就可以了.
用diminish可以不显示不需要的minor modes。另一种解决方案是可以把company-backend显示到 global-mode-string
又有个新想法了… 不知能否显示 repeating… 呢?
开启 repeat-mode
, 且当 repeat-echo-function
设置为 repeat-echo-mode-line
时,默认会在 modeline 这样显示。
试试:
(defun repeat-echo-mode-line+ (keymap)
"Display the repeat indicator in the mode line."
(if keymap
(unless (assq 'repeat-in-progress global-mode-string)
(add-to-list 'global-mode-string (list 'repeat-in-progress
repeat-echo-mode-line-string)))
(force-mode-line-update t)))
(setq repeat-echo-function #'repeat-echo-mode-line+)
遇到一个问题是并排开helpbuffer,两个buffer中doom-modeline的高度不一样。
字体设置:
(when (display-graphic-p)
;; Set default font
(cl-loop for font in '("Sarasa Mono SC" "SF Mono" "Hack" "Source Code Pro" "Fira Code"
"Menlo" "Monaco" "DejaVu Sans Mono" "Consolas")
return (set-face-attribute 'default nil
:font font
:height (cond (sys/mac-x-p 130)
(sys/win32p 110)
(t 120))))
;; Specify font for all unicode characters
(cl-loop for font in '("Symbol" "Apple Color Emoji" "Segoe UI Symbol" "Symbola")
return(set-fontset-font t 'unicode font nil 'prepend))
;; Specify font for Chinese characters
(cl-loop for font in '("Sarasa Mono SC" "WenQuanYi Micro Hei" "Microsoft Yahei")
return (set-fontset-font t '(#x4e00 . #x9fff) font)))
doom-modeline:
(use-package doom-modeline
:hook (after-init . doom-modeline-mode)
:config
(setq doom-modeline-icon t)
)
观察下两边的icon有什么不同,看看有没有哪个字符或者icon大一些。还有一个解决方案是设置 doom-modeline-height
,调大一些试试看。
把doom-modeline-height设置成30,两个一样高了。
如果把上面的字体设置注释掉,modeline的高度是一样的。icon的大小和字体的大小是有什么关系吗?不是很了解。
为了保持字体完整,mode-line高度取这两个高度最大值:bar 高度(也就是doom-modeline-height
),字体高度(图标也属于unicode字符)。所以建议doom-modeline-height
设置稍微大点,至少比字体高度大一些,会更美观些。
半人马大佬,mode-line高度好像不能低于25,我设置了 doom-modeline-height 20 15 10
和 all-the-icons
缩小 (setq all-the-icons-scale-factor 1.0)
,都不能减小mode-line高度,看着还有很多空间可减小。还有什么办法吗?
高度最小值是字体的高度,不用icon的话会减小高度。
我记得当时看 readme 的方法不行,然后自己折腾的
(defun smaller-modeline ()
"Make doom-modeline smaller."
(when window-system
(create-fontset-from-ascii-font "Source Code Pro:medium" nil "modeline")
(set-face-attribute 'mode-line nil
:height 120 :fontset "fontset-modeline")
(set-face-attribute 'mode-line-inactive nil
:height 120 :fontset "fontset-modeline"))))
推荐使用 spaceline
,看起来效果不错,关键是高度比这个低很多。我一开始用的就是这个,后面因为高度原因切换过去了。
@seagle0128 @Voleking 谢谢两位大佬!总结就是单独对mode-linde和mode-line-inactive设置字体大小即可进一步压缩doom-modeline-height
。
1、请问 @seagle0128 大佬,doom-modeline以后会支持切换到header-line吗?目前这点做的比较好的是 nano-modeline,好像doom-emacs也设置了一个modeline switch header line的todo。
2、请问 @Voleking 大佬, (create-fontset-from-ascii-font "Source Code Pro:medium" nil "modeline")
是单独给modeline设置一个字体集的意思吗?我把它和:fontset "fontset-modeline"
注释掉也可以。另外,face attributes 里有个 :font
选项也是可以单独设置mode-line字体的,这两种设置字体的方式之间有什么区别呢?
哈哈,我也是,不过昨晚刚好折腾mode-line,就顺便弄弄doom-modeline。现在可以愉快地用doom-modeline了 经过上面两位大佬解答,发现进一步压缩高度也是很简单的,改一改:height 即可:
(set-face-attribute 'mode-line nil
:height 140)
(set-face-attribute 'mode-line-inactive nil
:height 140)
另外,不知道all-the-icon大小有没有影响doom-modeline-height,但可以这样进行缩小:(setq all-the-icons-scale-factor 1.0)
直接设置 header-line-format
就可以,不过很多包也用headerline,会有冲突。本质上doom-modeline
就是设置 mode-line-format
.
会影响。默认设置为25也是为了适配icon