Search VIM:如何搜索不匹配的行';你没有特别的性格吗?
我有一些像这样的行来自ldiff文件Search VIM:如何搜索不匹配的行';你没有特别的性格吗?,search,vim,design-patterns,vi,text-mining,Search,Vim,Design Patterns,Vi,Text Mining,我有一些像这样的行来自ldiff文件 dn: cn=dkalland_directs_ww,cn=org_groups,cn=beehive_groups,cn=groups,dc=oracle ,dc=com businesscategory: open cn: dkalland_directs_ww description: Directs Group for daniel.kallander@oracle.com displayname: dkalland_directs_ww mail:
dn: cn=dkalland_directs_ww,cn=org_groups,cn=beehive_groups,cn=groups,dc=oracle
,dc=com
businesscategory: open
cn: dkalland_directs_ww
description: Directs Group for daniel.kallander@oracle.com
displayname: dkalland_directs_ww
mail: dkalland_directs_ww@oracle.com
objectclass: top
objectclass: orclGroup
objectclass: groupOfUniqueNames
orclglobalid: modified
orclnormdn: cn=dkalland_directs_ww,cn=org_groups,cn=beehive_groups,cn=groups,d
c=oracle,dc=com
owner: cn=BHGRPADMIN_WW,L=AMER,DC=ORACLE,DC=COM
uniquemember: cn=mattias_tobiasson,dc=us,dc=oracle,dc=com
uniquemember: cn=mattias_joelson,dc=us,dc=oracle,dc=com
uniquemember: cn=markus_persson,dc=us,dc=oracle,dc=com
...
现在有一些行是前一行的延续。我想加入他们各自的队伍
我感到困惑的是,如何在没有“:”
字符的情况下搜索一行,以便将其与前一行连接起来
请帮忙。我相信你想做一个
:v/:/-1j
v
命令选择与模式不匹配的所有行。-1
选择上面一行。而j
将这一行与下一行连接起来(即使用v
命令选择的那一行)
EditBenoit和dash tom bang在他们的评论中提供了实质性的改进:1
是不必要的,因为它是默认值,代码>不使用空格连接行。因此,这导致了以下更好的版本:
:v/:/-j!
图案
^[^:]*$
匹配不带:
的行,当:v
命令不适用时(宏或脚本中的某些比较)在更常见的任务中,它可能很有用。1
不是强制性的::v/:/-j
也可以工作<当使用范围的+
和-
一元运算符时,code>1
是默认计数。我要添加一个代码>到结尾,这样就不会在连接点添加或删除空格。(即:v/:/-j!
)事实上,使用这种方法,我不需要担心宏以及需要运行多少次d感谢这个简洁的解决方案:)使用上述方法(使用:v),我甚至不需要担心宏及其计数:)