这是列表L
:
['25', '2', '15', '4', '81', '43']
这是我使用命令时的输出sort(L)
['15', '2', '25', '4', '43', '81']
这就是我想要的输出:
['2', '4', '15', '25', '43', '81']
是否有一个命令可以像%sort n
在命令行中那样对列表中的数字进行排序?
这在文档中进行了解释。您需要定义一个函数来进行列表条目之间的比较。如果参数相等,函数应该返回 0,如果第一个参数大于第二个,则返回 1,如果第二个参数大于第一个,则返回 -1。
function! MyCompare(i1, i2)
return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
endfunction
然后,您可以使用新函数作为第二个参数调用 sort()。因此:
let list = ['25', '2', '15', '4', '81', '43']
echo sort( list, 'MyCompare' )
会回声
[2, 4, 15, 25, 43, 81]
正如预期的那样。