emacs开启word-wrap之后中文显示混乱

Vim、Emacs配置和使用
回复
tririver
帖子: 43
注册时间: 2008-01-10 9:33
联系:

emacs开启word-wrap之后中文显示混乱

#1

帖子 tririver » 2012-04-21 21:43

由于经常编辑英文文本,开启了word wrap功能:(setq-default word-wrap t)。这样读英文当一行很长的时候就会从单词断行而不是从单词中的某个字母断行。

可是,这时中文的断行变得惨不忍睹,比如

啊啊 啊啊...啊啊啊

在emacs中就会显示成

啊啊
啊啊...啊啊啊

也就是说emacs把汉字也当作单词处理,只有在空格和标点符号的地方才给断行了。不知有没有什么解决方法?多谢!
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: emacs开启word-wrap之后中文显示混乱

#2

帖子 lilydjwg » 2012-04-21 23:42

换 Vim, :em09
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: emacs开启word-wrap之后中文显示混乱

#3

帖子 Fermat618 » 2012-04-22 1:19

tririver 写了:由于经常编辑英文文本,开启了word wrap功能:(setq-default word-wrap t)。这样读英文当一行很长的时候就会从单词断行而不是从单词中的某个字母断行。

可是,这时中文的断行变得惨不忍睹,比如

啊啊 啊啊...啊啊啊

在emacs中就会显示成

啊啊
啊啊...啊啊啊

也就是说emacs把汉字也当作单词处理,只有在空格和标点符号的地方才给断行了。不知有没有什么解决方法?多谢!
找找一些选项吧,vim 在一些选项没设置好的时候也会这样。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
leeward
帖子: 15
注册时间: 2007-08-04 22:25
联系:

Re: emacs开启word-wrap之后中文显示混乱

#4

帖子 leeward » 2012-07-15 9:50

这个是word-wrap造成的,这个功能可以正确的对英文分词(因为英文就是单词),但对中文不行。

最简单的方法是在你的 .emacs 里添加如下的代码

代码: 全选

(add-hook 'visual-line-mode-hook
          (lambda()
            (if visual-line-mode
                (setq word-wrap nil))))
这段代码的意思是在进入 visual-line-mode的时候,关闭word-wrap。不过这个方法有个缺点,就是每次进入该模式都会这样配置。

比如我写中文都在org-mode,其他情况下我用英文,于是我把这个配置只和org-mode关联起来,代码类似下面

代码: 全选

(add-hook 'org-mode-hook '(lambda ()
							(setq visual-line-fringe-indicators t)
							(visual-line-mode)
							(if visual-line-mode
								(setq word-wrap nil))))							
.
葡萄柚
帖子: 1
注册时间: 2014-06-07 22:19
系统: Linux Mint 16

Re: emacs开启word-wrap之后中文显示混乱

#5

帖子 葡萄柚 » 2014-06-08 9:51

leeward 写了:这个是word-wrap造成的,这个功能可以正确的对英文分词(因为英文就是单词),但对中文不行。

最简单的方法是在你的 .emacs 里添加如下的代码

代码: 全选

(add-hook 'visual-line-mode-hook
          (lambda()
            (if visual-line-mode
                (setq word-wrap nil))))
这段代码的意思是在进入 visual-line-mode的时候,关闭word-wrap。不过这个方法有个缺点,就是每次进入该模式都会这样配置。

比如我写中文都在org-mode,其他情况下我用英文,于是我把这个配置只和org-mode关联起来,代码类似下面

代码: 全选

(add-hook 'org-mode-hook '(lambda ()
							(setq visual-line-fringe-indicators t)
							(visual-line-mode)
							(if visual-line-mode
								(setq word-wrap nil))))							
.
这个也不解决问题。这时候Emacs会在窗口的右边断行。中文不会有问题,但英文单词和数字却会在中间断开。
回复