如何在Vim中打印所有匹配值?
我在Vim中搜索grep -o <pattern> | sort | uniq
的等价物。
该解决方案应独立于操作系统工作,并且不使用grep。
示例
假设您有搜索模式/\w\+um\>/
和以下文本:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum pulvinar
aliquam viverra. Aenean accumsan et neque ac hendrerit.
Suspendisse tincidunt congue bibendum. Duis egestas tempor feugiat.
Curabitur egestas nunc nisi, id tristique libero finibus et.
Pellentesque lacus ex, molestie eget neque eget, ullamcorper gravida quam.
In rutrum et lectus luctus faucibus. In sollicitudin rutrum accumsan. Sed
quis libero viverra, dignissim metus vehicula, viverra urna. Proin sed diam
pellentesque, dictum tortor eget, sollicitudin eros.
字符串
有没有办法打印所有以um
结尾的单词?
ipsum
Vestibulum
bibendum
rutrum
rutrum
dictum
型
更妙的是:有没有办法打印每个以um
结尾的单词?
bibendum
dictum
ipsum
rutrum
Vestibulum
型
我的第一个尝试是使用:g//
命令。然而,所有的行搜索都被打印出来了,这与我正在寻找的内容不相符。
1条答案
按热度按时间ozxc1zmp1#
Ex命令倾向于面向行,并且没有完全按照您的要求执行的内置函数。
这将适用于第一个要求:
字符串
您在哪里:
:help getline()
的行的列表:help join()
的单个字符串,:help split()
的单词列表,:help filter()
过滤列表,join()
的单个多行字符串,您可能需要添加额外的步骤来删除标点符号。
为第二个需求添加
:help uniq()
:型