这是列表L
:
['25', '2', '15', '4', '81', '43']
这是我使用命令sort(L)
['15', '2', '25', '4', '43', '81']
这就是我想要的输出:
['2', '4', '15', '25', '43', '81']
是否有命令在列表中按%sort n
在命令行中对数字进行排序?
答案 0 :(得分:3)
documentation对此进行了解释。您需要定义一个函数来进行列表条目之间的比较。如果参数相等,则函数应返回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]
正如所料。