![FreeBSD 如何创建用于定义字符集排序顺序的区域文件 (LC_COLLATE/locale/colldef)](https://linux22.com/image/127028/FreeBSD%20%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E7%94%A8%E4%BA%8E%E5%AE%9A%E4%B9%89%E5%AD%97%E7%AC%A6%E9%9B%86%E6%8E%92%E5%BA%8F%E9%A1%BA%E5%BA%8F%E7%9A%84%E5%8C%BA%E5%9F%9F%E6%96%87%E4%BB%B6%20(LC_COLLATE%2Flocale%2Fcolldef).png)
免责声明:我知道这是先进的东西,“人迹罕至,可能会炸毁我的系统,引起青蛙雨,或者产生不可知的奇怪的不可预测的副作用。也就是说......无论如何请提供帮助:)我保证我不会追究任何人的责任:)
简单版本,我想修改我的 FreeBSD 服务器的字符集排序顺序,以便下划线在系统范围内按字母顺序排列在字母和数字之前,而不是在大写/小写之间(下划线位于 ASCII/Unicode 中的“XYZ”和“abc”之间)。
原因是大约 20 年来我一直把所有文件和目录放在一起。开头有不同数量的下划线的“重要”字符,以强制它们在 Windows 及其前身中位于列表的顶部(至少在非 Unicode 中对符号 -> 数字 -> 字母进行排序)。在这样的背景下,现在处于底部是非常令人不安的。令人不安的是,我想稍微改变我的 FreeBSD 服务器的字符集排序顺序,只是为了在字母数字之前而不是之后得到下划线。
我认为系统或常用软件中不会有任何关键的事情以此为依据(特别是其他语言有不同的排序顺序),而且我不需要更改任何其他字符顺序。
我已经浏览了FreeBSD源代码注释,我LC_COLLATE
发现我需要的文件是由 FreeBSD 源代码中的一个工具生成的,基于来自 Unicode Inc 的数据(可能也经过修改)或通过 FreeBSD 源代码中的其他控制文件进行增强。locale
colldef
man colldef
我想它涉及自定义标准的人类可读定义,然后使用构建工具构建自定义区域设置,该区域设置复制所有现有文件,但包括对整理定义的更改。
到目前为止,我还没有超越这一点,并且希望清楚地了解 FreeBSD 的构建系统从涉及的任何人类可编辑源文件到运行系统中用于区域设置字符集排序的最终排序规则定义数据文件的过程/比较功能。具体来说,我必须采取哪些步骤才能做到这一点。
作为一项附带好处,我希望通过这样做学到很多东西 - 但最重要的是,我希望我的下划线在我非常习惯的地方......