- 主题:如何不借助外部命令统计重复行的重复次数?先谢!
就是不借助操作系统的命令,利用vim一身的函数和命令,实现“:!sort % | uniq -c”的效果。
为什么有这个需求呢,是我在Win上用gvim,没法调起uniq命令。
先谢!
- 来自 水木社区APP v3.4.2
--
FROM 120.244.222.*
我觉得你装一套这些工具最方便,比如装个git把命令行工具都加到path里
【 在 lfqy 的大作中提到: 】
: 就是不借助操作系统的命令,利用vim一身的函数和命令,实现“:!sort % | uniq -c”的效果。
: 为什么有这个需求呢,是我在Win上用gvim,没法调起uniq命令。
: 先谢!
: ...................
--
FROM 114.249.196.*
有道理,我试试,thx!也希望在这里能问到只用vim的解决方案
- 来自 水木社区APP v3.4.2
【 在 milksea 的大作中提到: 】
: 我觉得你装一套这些工具最方便,比如装个git把命令行工具都加到path里
--
FROM 120.244.222.*
Windows 上也有 uniq 的。
搜一下 unix tools for windows
【 在 lfqy (鹿放青崖) 的大作中提到: 】
: 就是不借助操作系统的命令,利用vim一身的函数和命令,实现“:!sort % | uniq -c”的效果。
: 为什么有这个需求呢,是我在Win上用gvim,没法调起uniq命令。
: 先谢!
: ...................
--
FROM 27.38.249.*
补充一个从Stack Overflow问来的答案:
:echo getline(1,'$')->map({ idx, val -> getline(1,'$')->count(val) .. ' ' .. val })->sort()->uniq()->join("\n")
我在公司win电脑上试了下,好像是由于vim版本的原因,不支持这种语法,照着改成下面的,可以正常运行:
echo join(reverse(uniq(sort(map(getline(1, '$'), 'count(getline(1, "$"), v:val) . " " . v:val'), 'N'))), "\n")
--
FROM 221.222.21.*
好的,我也试试,谢啦!
- 来自 水木社区APP v3.4.2
【 在 flw 的大作中提到: 】
: Windows 上也有 uniq 的。
: 搜一下 unix tools for windows
--
FROM 221.222.21.*
sort那一坨不知道干啥用的,但统计重复行是不是和统计重复字符串是一个办法?
【 在 lfqy 的大作中提到: 】
:
: 就是不借助操作系统的命令,利用vim一身的函数和命令,实现“:!sort % | uniq -c”的效果。
: 为什么有这个需求呢,是我在Win上用gvim,没法调起uniq命令。
: 先谢!
:
#发自zSMTH@VOG-AL10
--
FROM 58.208.126.*