On Thu, Nov 05, 2020 at 05:27:22PM EST, Chris Jones wrote:

> So I have two problems:
> 
> 1.  sort the output by key value (couldn't think of a simple way
>     to do this off the batน...
> 
> 2.  until the issue I described earlier in this thread is addressed
>     I need to invoke gnu/coreutils' sort utility...
> 
> The solution to problem #1 should be pretty straightforward. 
> 
> As to the second problem I need to pass my dictionary's entries to
> gnu/sort in a way that somehow will return them sorted alphabetically. 
> 
> Is this feasible using an external sort program?
> 
> Thanks,
> 
> CJ
> 
> น In python:
> 
> | for k, v in sorted(dict.items()):
> |     print(k, v)

As it turns out the above is incorrect: python does not do it correctly
either... at least if you use its native sort() method.

It turns out that one possibility is to use IBM's 'ICU' library: on
debian I only had to install the pyICU bindings via python's pip/pip3
and this appears to intall the correct version of the library...

Here's a vim wrapper to work around this difficulty:

| function! Lsort(list, locale)
| py3 << EOP
| import vim, icu
| list = vim.eval('a:list')
| locale = vim.eval('a:locale')
| collator = icu.Collator.createInstance(icu.Locale(locale))
| slist = sorted(list, key=collator.getSortKey)
| # pass back the sorted list to vim
| vim.command("let lst = %s"% slist)
| EOP
|   return lst
| endfunc

e.g.

| :let sorted_list = Lsort(unsorted_list, 'fr_FR.UTF-8')

Should also work with other western languages or fancy English words
with diacritics (untested).

As to GNU/sort I have not been able to figure out how to invoke it from
a vim wrapper function.

BTW... How can I keep an eye on if/when/how this issue will be addressed
natively in vim?

Thanks,

CJ

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/20201206003339.GD5952%40turki.local.

Reply via email to