You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单个命令在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:23:21