forked from aniani/vim
patch 8.2.1933: cannot sort using locale ordering
Problem: Cannot sort using locale ordering.
Solution: Add a flag for :sort and sort() to use the locale. (Dominique
Pellé, closes #7237)
This commit is contained in:
@@ -1801,7 +1801,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
|
||||
found here: |sort()|, |uniq()|.
|
||||
|
||||
*:sor* *:sort*
|
||||
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
|
||||
:[range]sor[t][!] [b][f][i][l][n][o][r][u][x] [/{pattern}/]
|
||||
Sort lines in [range]. When no range is given all
|
||||
lines are sorted.
|
||||
|
||||
@@ -1809,6 +1809,14 @@ found here: |sort()|, |uniq()|.
|
||||
|
||||
With [i] case is ignored.
|
||||
|
||||
With [l] sort uses the current locale. See
|
||||
`language collate` to check or set the locale used
|
||||
for ordering. For example, with "en_US.UTF8",
|
||||
Ö will be ordered after O and before P,
|
||||
whereas with the Swedish locale "sv_SE.UTF8",
|
||||
it will be after Z.
|
||||
Case is typically ignored by the locale.
|
||||
|
||||
Options [n][f][x][o][b] are mutually exclusive.
|
||||
|
||||
With [n] sorting is done on the first decimal number
|
||||
@@ -1875,8 +1883,7 @@ found here: |sort()|, |uniq()|.
|
||||
Note that using `:sort` with `:global` doesn't sort the matching lines, it's
|
||||
quite useless.
|
||||
|
||||
The details about sorting depend on the library function used. There is no
|
||||
guarantee that sorting obeys the current locale. You will have to try it out.
|
||||
`:sort` does not use the current locale unless the l flag is used.
|
||||
Vim does do a "stable" sort.
|
||||
|
||||
The sorting can be interrupted, but if you interrupt it too late in the
|
||||
|
||||
@@ -9700,6 +9700,13 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
|
||||
When {func} is given and it is '1' or 'i' then case is
|
||||
ignored.
|
||||
|
||||
When {func} is given and it is 'l' then the current locale
|
||||
is used for ordering. See `language collate` to check or set
|
||||
the locale used for ordering. For example, with "en_US.UTF8",
|
||||
Ö will be ordered after O and before P, whereas with the
|
||||
Swedish locale "sv_SE.UTF8", it will be after Z.
|
||||
Case is typically ignored by the locale.
|
||||
|
||||
When {func} is given and it is 'n' then all items will be
|
||||
sorted numerical (Implementation detail: This uses the
|
||||
strtod() function to parse numbers, Strings, Lists, Dicts and
|
||||
|
||||
Reference in New Issue
Block a user