微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在Vim中有这些行:
a
c
b
e
é
f
g

当我这样做时:%sort,我得到这个:

a
b
c
e
f
g
é

显然,“é”行不应该在最后,它应该在“e”行之后.是否可以让Vim正确排序这些行?不使用ASCCI键作为字符,而是使用实际字符.

我也试过:!sort(使用GNU sort utiliy)但我得到了相同的结果.

:%sort和:%!sort不一定以相同的方式工作.引用:帮助排序:

The details about sorting depend on
the library function used. There is
no guarantee that sorting is “stable”
or obeys the current locale. You will
have to try it out.

另一方面,GNU排序根据当前语言环境排序.引用人类排序:

* WARNING * The locale specified by the environment affects
sort order. Set LC_ALL=C to get the Traditional sort order that uses
native byte values.

在我的系统上(临时设置为fr_CA.UTF-8的Ubuntu 9.10):%sort排序,就像设置了C或POSIX一样,而:%!sort根据法语区域设置进行排序.

我的猜测是你最初尝试了两种:%sort和:%!在类似POSIX的语言环境下排序(产生相同的结果),然后继续使用不同的语言环境进行实验:%sort only(总是返回POSIX) – 顺序).你能证实吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐