请问Linux下编辑中文文档卡顿吗?

之前用的时候由于一直是英文环境,没怎么注意中文处理这件事。

最近在用org写一份中文文档,大概2000行不到。 屏幕中可见范围中文少的时候还凑合(比如大部分标题都折起来),如果满屏幕都是中文,编辑就很卡。

不知道是不是Emacs天生处理中文字符就很慢。

折起来时不卡,这个猜测是不是开了linum-mode,

用的不是linum,是原生的line number mode。

line number mode应该也不比linum好多少,行号问题导致org-mode卡,应该是老问题,很多人都遇到过,我以前也不知道,还以为org-mode就是这样的,甚至还换了几个emacs版本来用………

https://pavelfatin.com/typometer/

我拿这个测试过Emacs的编辑性能。关闭linum-modeword-wrap会有比较大的改善

感谢大家的回复! 怪我没说清重点 :joy:,其实我想问的是各位在Linux(非WSL)下用Emacs写大量中文的时候相较英文是否有明显的卡顿,甚至完全卡死。如果Emacs对中文的确支持不好的话,我也就不折腾了。

我大致能确定是中文导致的,但不清楚根本原因是什么,以及如何解决。

我做过如下测试:

  1. Buffer为Fundamental,没有行号,没有word wrap,大约30行x100个中文字符。编辑就已经卡的不行了,例如删除字符或移动光标。
  2. Org mode下开启行号,输入10000行英文都丝般顺滑。
  3. 我发现卡顿程度和当前视野范围中中文字符的数量成正相关(所以才说Org mode把标题折起来会好很多。)

所以才觉得应该是中文导致的,Profiler显示ivy-readevil-line-move占用了挺高的CPU以及Mem,不清楚具体是什么为什么。

emacs -Q呢?

linux下编辑几百行全中文org文件无卡顿

linux下emacs应该比windows更加流畅才对!我windows编辑一万多行纯中文的org文件没有卡顿,linux只会更好,感觉没必要操心这个问题

我用Spacemacs在WSL下丝毫不会卡,除了fcitx自动切换有点迟钝。不知道有没有帮助。

ps:我用的GNU Emacs 27.0.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2020-03-05

我又试了下以前用过的Spacemacs配置,编辑中文也不卡。 emacs -Q也不卡。 然后用了下Doom Emacs的默认配置,就有问题 :joy:

也许是Doom默认开了一些东西水土不服吧。

Fundamental mode就开了下面几个minor mode,还是卡的不行。

Enabled minor modes: +Popup Doom-Modeline Evil Evil-Escape Evil-Local
File-Name-Shadow Gcmh General-Override Ivy Menu-Bar Mouse-Wheel Persp
Shell-Dirtrack Show-Paren Solaire-Global Tool-Bar Which-Key Window-Divider
Winner Xterm-Mouse

emacs -Q不卡

试试我的配置卡不卡? GitHub - redguardtoo/emacs.d: Fast and robust Emacs setup.

不卡。

试了下Doom 19年年底的版本,也是存在同样的问题。

用我的配置Centaur Emacs 会不会卡?

不卡。紫薯布丁

我在windows下用doom也不卡,org中文在二千行左右。行号也开启的。

doom下卡过是编辑env文件,shell-mode,换成fundamental就好了

1 个赞

我也好卡,但不知道咋回事

终于找到解决方法了,配置下这个就行了:(set-language-environment 'utf-8)参考资料

字符编码的问题?从原来的unicode变成了unicode-bmp

             position: 2 of 2 (50%), column: 2
            character: 文 (displayed as 文) (codepoint 25991, #o62607, #x6587)
              charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
code point in charset: 0x6587
               script: han
               syntax: w 	which means: word
             category: .:Base, C:2-byte han, L:Left-to-right (strong), c:Chinese, h:Korean, j:Japanese, |:line breakable
             to input: type "C-x 8 RET 6587"
          buffer code: #xE6 #x96 #x87
            file code: #xE6 #x96 #x87 (encoded by coding system utf-8-unix)
              display: by this font (glyph code)
    xft:-1ASC-Droid Sans Fallback-normal-normal-normal-*-16-*-*-*-*-0-iso10646-1 (#x331F)

Character code properties: customize what to show
  name: CJK IDEOGRAPH-6587
  general-category: Lo (Letter, Other)
  decomposition: (25991) ('文')
3 个赞

成了成了,太感谢了