Que localidade o VIM usa para classificação e expressões regulares?

1

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.

    
por Aton 14.09.2012 / 20:11

2 respostas

1

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.
    
por 14.09.2012 / 20:23
0

(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.

    
por 14.09.2012 / 22:22