最近为了项目方便转到了 Windows 下。踩了一些坑后,就剩缩放这一块的问题实在没找到什么解决办法。需要高手来指点一下。
屏幕是4k的hidpi屏幕。emacs 下普通字体能正常缩放,但有一些元素,如 fringe bitmap,和输入法输入时的字母没有正确的缩放,只有正常的 1/4 大小。把屏幕分辨率设置成1080p时,这部分组件的大小比例正常。
而在 Linux pgtk 下这些部分是不需要设置,开箱就能正确缩放的。
其中输入法这一块比较致命,有些影响使用了。
截图如下:
输入法:
窗口最右侧的 fringe bitmap:
有没有 Windows 下的高手来指点一下,如何正确设置这些元素的缩放?
Uhuru
5
fringe indicator的缩放问题可以试试这个包emacs-fringe-scale,主要功能就是给define-fringe-bitmap
添加一个hook,在定义的时候就将bitmap缩放,但是这个包有一个缺陷,一些builtin bitmap并不是通过elisp来定义的而是通过c,我不太清楚怎么去调用他们的值,就很笨地将这些builtin bitmaps用elisp的函数重新定义了一次(
(setq builtin-bitmaps
' ((question-mark [#x3c #x7e #xc3 #xc3 #x0c #x18 #x18 #x00 #x18 #x18])
(exclamation-mark [#x18 #x18 #x18 #x18 #x18 #x18 #x18 #x00 #x18 #x18])
(left-arraw [#x18 #x30 #x60 #xfc #xfc #x60 #x30 #x18])
(right-arrow [#x18 #x0c #x06 #x3f #x3f #x06 #x0c #x18])
(up-arrow [#x18 #x3c #x7e #xff #x18 #x18 #x18 #x18])
(down-arrow [#x18 #x18 #x18 #x18 #xff #x7e #x3c #x18])
(left-curly-arrow [#x3c #x7c #xc0 #xe4 #xfc #x7c #x3c #x7c])
(right-curly-arrow [#x3c #x3e #x03 #x27 #x3f #x3e #x3c #x3e])
(left-triangle [#x03 #x0f #x1f #x3f #x3f #x1f #x0f #x03])
(right-triangle [#xc0 #xf0 #xf8 #xfc #xfc #xf8 #xf0 #xc0])
(top-left-angle [#xfc #xfc #xc0 #xc0 #xc0 #xc0 #xc0 #x00])
(top-right-angle [#x3f #x3f #x03 #x03 #x03 #x03 #x03 #x00])
(bottom-left-angle [#x00 #xc0 #xc0 #xc0 #xc0 #xc0 #xfc #xfc])
(bottom-right-angle [#x00 #x03 #x03 #x03 #x03 #x03 #x3f #x3f])
(left-bracket [#xfc #xfc #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xfc #xfc])
(right-bracket [#x3f #x3f #x03 #x03 #x03 #x03 #x03 #x03 #x3f #x3f])
(filled-rectangle [#xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe #xfe])
(hollow-rectangle [#xfe #x82 #x82 #x82 #x82 #x82 #x82 #x82 #x82 #x82 #x82 #x82 #xfe])
(hollow-square [#x7e #x42 #x42 #x42 #x42 #x7e])
(filled-square [#x7e #x7e #x7e #x7e #x7e #x7e])
(vertical-bar [#xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0 #xc0])
(horizontal-bar [#xfe #xfe])))
(dolist (bitmap builtin-bitmaps)
(define-fringe-bitmap (car bitmap) (cadr bitmap)))
上面糊的这些贴在调用包和包的函数后应该就能生效了。(没有在windows上试过,这是我之前在linux上的配置)
确实,取消单行是一个好办法。
楼上提的emacs-rime也是一个办法,但我还是希望emacs和其他程序能保持一致吧。
jyl
8
楼主用的输入法是什么,微软拼音?换个支持高分屏的输入法设置一下字体大小就可以了