Экспериментируя с vimscript и читая замечательный Learn Vimscript the Hard Way (LVTHW), я понял, что Vim не сортировал числа так, как я этого хотел.Сортировка чисел в vimscript
Например, эта функция из LVTHW
function! Sorted(l)
let new_list = deepcopy(a:l)
call sort(new_list)
return new_list
endfunction
удивил меня, когда я назвал его Sorted([3, 1, 11, 2])
:
Он вернулся [1, 11, 2, 3]
.
Я думаю, что Vim сортирует эти цифры в алфавитном порядке. Но я бы ожидал, что функция вернет номера в natural order: [1, 2, 3, 11]
Как я могу убедить Vim (7.4) сделать это?
Hi Kent. Спасибо за Ваш ответ. Я прочитал документацию и не упоминает трюк 'n'. Также, когда я выполняю ': echo sort ([3,1,11,2], 'n')' Я получаю сообщение об ошибке «Неизвестная функция: n'. Какую версию Vim вы используете? –
@MatthiasBraun Я использую 'vim 7.4.473':' Когда задано {func}, и это 'n', тогда все позиции будут \t \t отсортированный номер ' – Kent
Я вижу. Итак, 'n' является функцией, подобной' NaturalOrder' в этом [ответе] (https://stackoverflow.com/questions/27226987/sort-numbers-in-vimscript/27232550?noredirect=1#27226988), правильно? –