diff options
author | Sean Dewar <seandewar@users.noreply.github.com> | 2021-04-19 19:57:19 +0100 |
---|---|---|
committer | Sean Dewar <seandewar@users.noreply.github.com> | 2021-04-20 10:12:02 +0100 |
commit | 6a0b8cbd81f81957a415cf03415bf2bffc18b56e (patch) | |
tree | 0c469e0ab5c4d16e88e2bb4645a9bea2b499d542 /runtime | |
parent | 1d72b6e4cd5807d27acce9b6f8b6d22176e50951 (diff) | |
download | rneovim-6a0b8cbd81f81957a415cf03415bf2bffc18b56e.tar.gz rneovim-6a0b8cbd81f81957a415cf03415bf2bffc18b56e.tar.bz2 rneovim-6a0b8cbd81f81957a415cf03415bf2bffc18b56e.zip |
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 vim/vim#7237)
https://github.com/vim/vim/commit/55e29611d20bca14fa5efc61385bc8a6b7acd9e2
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/change.txt | 13 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 7 |
2 files changed, 17 insertions, 3 deletions
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 310d244fbc..bdef544b2a 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1742,7 +1742,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. @@ -1750,6 +1750,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 @@ -1816,8 +1824,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 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 01803041a8..2aff9fc127 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -8359,6 +8359,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 |