Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vim中对UTF-8线进行排序?_Vim_Unicode_Utf 8 - Fatal编程技术网

如何在Vim中对UTF-8线进行排序?

如何在Vim中对UTF-8线进行排序?,vim,unicode,utf-8,Vim,Unicode,Utf 8,我在Vim中有以下几行代码: a c b e é f g 当我进行:%sort时,我得到以下结果: a b c e f g é 显然,“é”行不应该在末尾,它应该在“e”行之后。是否可以让Vim对这些线进行正确排序?不为字符使用ASCCI键,而是实际字符 我还尝试了:!排序(使用GNU排序实用程序),但我得到了相同的结果。我使用得到以下结果:%!排序: a b c e é f g 这就是应该发生的事情。似乎是你的区域设置造成的。我不确定到底出了什么问题,但是FWIW,我有以下环境设置:LA

我在Vim中有以下几行代码:

a
c
b
e
é
f
g
当我进行
:%sort
时,我得到以下结果:

a
b
c
e
f
g
é
显然,“é”行不应该在末尾,它应该在“e”行之后。是否可以让Vim对这些线进行正确排序?不为字符使用ASCCI键,而是实际字符


我还尝试了
:!排序
(使用GNU
排序
实用程序),但我得到了相同的结果。

我使用
得到以下结果:%!排序

a
b
c
e
é
f
g

这就是应该发生的事情。似乎是你的区域设置造成的。我不确定到底出了什么问题,但是FWIW,我有以下环境设置:
LANG=en_GB.UTF-8
:%sort
:%!排序
的工作方式不一定相同。引用
:帮助排序

a
b
c
e
é
f
g
有关排序的详细信息取决于 使用的库函数。有 不保证分拣“稳定” 或遵守当前区域设置。你会 我必须试一试

另一方面,GNU排序根据当前区域设置进行排序。引用
人工分拣

a
b
c
e
é
f
g
*警告*环境指定的区域设置会影响 排序顺序。设置LC_ALL=C以获取使用 本机字节值

在我的系统上(暂时设置了fr_CA.UTF-8的Ubuntu9.10)
:%sort
排序就像设置了
C
POSIX
一样,而
:%!排序
根据法语地区进行排序


我猜您最初尝试了
:%sort
:%!在类似POSIX的区域设置下进行排序(产生相同的结果),然后仅使用
:%sort
(始终返回类似POSIX的顺序)在不同区域设置下继续实验。你能确认一下吗?

这里也一样。我在Ubuntu 9.04上使用了
sort
6.10。这很奇怪,我有
LANG=fr\u CA.UTF-8
LC\u ALL=fr\u CA.UTF-8
。这并不像你想象的那么明显。确切的顺序在很大程度上取决于区域设置。我猜你用的地方不是你想用的地方。在您的系统上,
locale
命令打印的是什么?感谢
:%sort
:%之间的澄清!按区域设置排序
。然而,即使将
LC\u ALL
设置为
fr\u CA.UTF-8
:%!sort
命令仍然错误地对行进行排序。问题可能与Vim无关,因为在常规终端中对文件运行
sort
,也无法正常工作。我在Mac电脑上,所以这可能是问题所在。我会调查的,真奇怪。。。您是对的,最好首先关注GNU排序,因为问题看起来并不特定于vim。我现在没有Mac电脑,所以我帮不了你,但我发现:也许这场讨论在某种程度上是相关的。祝你好运