VIM 使用什么语言环境进行排序和正则表达式?

VIM 使用什么语言环境进行排序和正则表达式?

假设我有一个包含以下内容的文件:

c
C
b
B
a
A

当我这样做时:%sort,我得到以下结果:

A
B
C
a
b
c

当我这样做时:%!sort(注意“!”),我得到

a
A
b
B
c
C

我使用正则表达式得到了相同的行为,即 VIM 中的 [AZ] 匹配大写字符而不是 [aAbBcC...]。

“locale” 的输出:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

:languageVIM内部的输出:

Current language: 
"LC_CTYPE=en_US.UTF-8;
LC_NUMERIC=C;
LC_TIME=en_US.UTF-8;
LC_COLLATE=en_US.UTF-8;
LC_MONETARY=en_US.UTF-8;
LC_MESSAGES=en_US.UTF-8;
LC_PAPER=en_US.UTF-8;
LC_NAME=en_US.UTF-8;
LC_ADDRESS=en_US.UTF-8;
LC_TELEPHONE=en_US.UTF-8;
LC_MEASUREMENT=en_US.UTF-8;
LC_IDENTIFICATION=en_US.UTF-8"

根据“:language”,vim 应该使用“utf8 排序”,但显然它没有。

答案1

来自 VIM 7.3 ':help 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.

答案2

(1) 我知道这实际上不是对主要问题的回答,(2) 我vim现在无法访问,所以我能确定的是,这对 有效vi。也就是说,您可以通过键入(或缩写,或缩写)vi来进行不区分大小写的搜索。使用恢复为区分大小写的行为。:set ignorecase:set ic:se ic:set noic

相关内容