Do 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.
Suponha que eu tenha um arquivo com o seguinte conteúdo:
c
C
b
B
a
A
Quando eu faço :%sort
, recebo o seguinte resultado:
A
B
C
a
b
c
Quando eu faço :%!sort
(note o '!'), recebo
a
A
b
B
c
C
Eu obtenho o mesmo comportamento com expressões regulares, por exemplo [A-Z] dentro do VIM combina caracteres maiúsculos e não [aAbBcC ...].
A saída de "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=
A saída de :language
dentro do VIM:
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"
De acordo com o ": language" o vim deve estar usando "utf8 sorting", mas aparentemente isso não acontece.
(1) Eu sei que isso não é realmente uma resposta para a pergunta principal que foi feita, e (2) eu não tenho acesso a vim
agora, então tudo que posso ter certeza é que isso funciona para vi
. Dito isso, você pode obter vi
para fazer pesquisas que não diferenciam maiúsculas de minúsculas digitando :set ignorecase
(ou :set ic
para abreviar ou :se ic
para abreviar). Use :set noic
para reverter para o comportamento com distinção entre maiúsculas e minúsculas.