代码: 全选
:set tw=10
代码: 全选
测试呵呵—
—可以
不??????????????????
2. 如果像上面这样打一串不能放在行首的标点,文本将会超出 tw 很多。
你这个理解是错误的。Strange 写了: 有一个原则是 提供机制而不是限制。
试想万一有人排版不想用禁则怎么办。有人除了"。",还想把";"留在行末怎么办。
再说日文韩文和中文标点符号差异还是有的。
拿日文来说,",“”"这些都是没有的,取而代之的是"、「」",你准备把这些字符也硬编码吗?
就是因为不知道设置是否和日韩用户冲突,所以更要提供选项。
不管怎么样说,像硬编码这样的做法,是不符合 Vim is a highly configurable text editor 的风格的。
这确实是一个 bug,我忘了考虑 …… 和 —— 了,谢谢提醒!lilydjwg 写了:好吧,硬编码进去就硬编码,我现在来报 bug:
结果1. 破折号和省略号中间会被断开。代码: 全选
测试呵呵— —可以 不??????????????????
这个英文也一样的,试试 `ok?????????????????????????????????',我认为这里不断行是正确的行为,断行才奇怪了。2. 如果像上面这样打一串不能放在行首的标点,文本将会超出 tw 很多。
vim 内部使用的是 encoding 变量所指定的编码来存储 buffer 的内容的。你可以在 vim 中用 ga 命令查看光标下字符的内部存储代码。poet 写了: C 中的 iswpunct() 函数可以对多字符集的标点符号进行判定,而这个判定是基于当前的 locale,因此,事实上即便使用非 unicode 的编码,也可以实现正确判定。
我比较疑惑的是楼主认为只能支持 utf-8,但是以我的理解,不论读入的文本是什么编码集, vim 内部在缓冲区层面都是用 unicode 处理的。只是在保存和装载时进行编码转换。所以,貌似不应当只能支持 utf-8 字符集。
查了半天,发现Vim似乎没有gedit的“不将一个单词拆在两行”这样的选项。我现在对编辑器没什么兴趣了,不知道其他编辑器是怎么处理过长单词的。只记得当初EditPad Pro把中文当成长单词回绕让我非常不爽(目前还没有发现修正了此问题的破解版)。反正我觉得,当规定 tw 时,应当有选项控制使行不超过 tw。目前我只发现现在回帖的这个评论框在火狐3.6.12下是会强行折断长单词的。yswzing. 写了: 这个英文也一样的,试试 `ok?????????????????????????????????',我认为这里不断行是正确的行为,断行才奇怪了。
自己编译的 vim 要想支持中文,需要使用 feature big 以上,或者手动编辑 Makefile 增加 multibyte 支持。wutong 写了:我明白了如何打补丁,即先下载原代码,然後将fix_break7.txt 移到vim 文件夹中。
然後命令
patch -p1 < fix_break7.txt
make
sudo make install
但是编译後的vim 不支持中文,这是怎么回事?
开始用的是poet 写了:自己编译的 vim 要想支持中文,需要使用 feature big 以上,或者手动编辑 Makefile 增加 multibyte 支持。wutong 写了:我明白了如何打补丁,即先下载原代码,然後将fix_break7.txt 移到vim 文件夹中。
然後命令
patch -p1 < fix_break7.txt
make
sudo make install
但是编译後的vim 不支持中文,这是怎么回事?
OK, 我更新了。wutong 写了:最近发现这个禁则没有处理数学中常用的符号「.」。「.」相当于句号。