我最近使用dirvish时有个小问题感觉非常不方便:字体太大显示丑陋。如何给dirvish设置较小字体?
因为项目文件较多,目录层级较深,dirvish显示时把较长较深的文件换行显示,看起来非常丑:
vscode显示文件的侧栏就使用了比编辑区更小的字体。
dirvish很好用,最近作者也回归开发了,希望越来越好。
我最近使用dirvish时有个小问题感觉非常不方便:字体太大显示丑陋。如何给dirvish设置较小字体?
因为项目文件较多,目录层级较深,dirvish显示时把较长较深的文件换行显示,看起来非常丑:
vscode显示文件的侧栏就使用了比编辑区更小的字体。
dirvish很好用,最近作者也回归开发了,希望越来越好。
按理说,这种界面,不应该开启折行呀。
可以关闭折行试一试:
(toggle-truncate-lines 1)
另外,改变字体,你需要看看上面用的什么 face 或 overlay:
describe-char
命令;然后就可以修改对应的 face,就可以调整字号、颜色等
有时候,字符字体没有特别设置,那就是继承的 default
,而你又不想改变 default
的样式,那么可以自己新建一个 face,然后利用 hook,在这个 buffer 打开时,覆盖一下 default
的 face:
(defface test '() "new face")
(set-face-attribute 'test nil :height 150)
;; add to hook
(face-remap-add-relative 'default 'test)
;; Doom Emacs, for `solaire-mode' is enable in special buffer
(face-remap-add-relative 'solaire-default-face 'test)
直接hook一下text-scale-decrease
?text-scale-FOO应该都只对当前buffer生效的
确实呀!如果只改变字号的话,用 text-scale-decrease
更直接方便。
可以使用根据模式来设置字体,height就是设置字体的大小
(defun my-set-font-for-mode ()
(cond
((derived-mode-p 'dired-mode)
(setq-local face-remapping-alist '((default (:family "M PLUS Code Latin 50" :height 180) default))))
((derived-mode-p 'vterm-mode)
(setq-local face-remapping-alist '((default (:family "Kode Mono" :height 160) default))))
))
我也是根据 mode 来设置字体。因为我用的 setup,就写了个关键字。
(setup-define :set-font
(lambda (font)
`(add-hook ',(setup-get 'hook)
(lambda ()
(let ((face-name (intern (format "%s-font-face" ',(setup-get 'mode)))))
(unless (facep face-name)
(make-face face-name))
(set-face-attribute face-name nil :font ,font)
(setq buffer-face-mode-face face-name)
(buffer-face-mode)))))
:documentation "Set the font for the current mode.
This will create a unique face for the mode and set the buffer
font to FONT using that face."
:debug '(form)
:repeatable t)
然后
(:with-mode dired-mode (:set-font "Aporetic Serif Mono 12"))
我记得狗哥之前对 treemacs 有这种缩小字体的设置
这个折行的问题应该是已经解决了。 至于说给 dirvish 单独设置较小的字体,我没有具体试过,但本质上和给 dired-mode 单独设置字体是同一个问题,因为 dirvish 的 major-mode 还是 dired-mode 没变。我试了下 text-scale-decrease,除了右边留了点缝好像没啥问题。更好的办法似乎还是楼上各位提到的单独为 dired-mode 设置一个小号字体,我有空的时候再研究下。