如何用单个命令在Vim中删除非连续多行?
在Vim中用单个命令删除非连续多行的方法
当然可以,Vim完全支持通过单个命令行操作删除非连续多行,针对你的需求,这里有几种实用方案:
直接串联删除命令
在Ex命令模式下,用管道符|把多个单行删除命令连起来,输入一次即可完成所有目标行的删除::5d|7d|9d|11d|13d|15d其中
:[行号]d是删除指定行的基础命令,|用于在同一命令行中依次执行多个Ex命令。利用global命令匹配行特征删除
你的目标行都是包含两位罗马数字的键值对(比如'CM': 900,),可以直接匹配这个特征批量删除,比指定行号更灵活::g/^\s*'[A-Z]\{2\}':/d如果要精准匹配行号(假设显示行号),也可以用正则匹配行号:
:g/^\s*\(5\|7\|9\|11\|13\|15\)\s/d:g命令会遍历所有符合正则的行,执行后续的d操作完成删除。删除同时保留内容(方便迁移到其他字典)
既然你要把这些行移到另一个字典,建议删除时将内容追加到寄存器,之后直接粘贴到目标位置::5d A|7d A|9d A|11d A|13d A|15d A这里大写
A表示将删除的内容追加到寄存器a(小写a会覆盖原有内容),之后到目标位置输入"ap就能粘贴这些行。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

