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

如何在Vim中删除多个不连续的行段?

如何在Vim中同时删除多组不连续的行段

当然有办法啦!在Vim里要同时删除像34-40行和43-45行这样不连续的行段,有几种简单又实用的方法,我给你一一说明:

  • 方法一:用管道符|连接多个删除命令
    这是最容易上手的方式,你可以把两个删除命令用管道符|隔开,让Vim依次执行它们。不过这里要注意一个小坑:如果你先删除前面的行段(比如34-40行),后面的行号会往前偏移,原本的43-45行就会变成更小的行号,导致删除位置出错。所以建议先删后面的行段,再删前面的,命令如下:

    :43,45d | 34,40d
    

    要是你确认删除前面的行段后,后面的目标行不会受影响(比如中间隔了很多行),也可以反过来写,但先删后面的方式更稳妥。

  • 方法二:利用行号匹配的全局命令
    如果你想一次性指定所有要删除的行段,还可以用:global命令结合Vim的行号匹配语法来实现,这个方法适合更复杂的多段删除场景:

    :g/^\%34l\|\%43l/,/^\%40l\|\%45l/d
    

    这里的\%nl是Vim专门用来匹配第n行的语法,这个命令会分别匹配第34行、第43行作为起始点,然后各自删除到第40行、第45行。不过对于仅两组行段的简单需求来说,第一种方法更直观。

  • 方法三:可视模式手动选择删除
    要是你不习惯记命令行语法,也可以用可视模式来操作:先按V进入行可视模式,选中34-40行;接着按住Ctrl+o回到普通模式,移动光标到43行,再按V选中43-45行;最后按d键就能删除所有选中的行段了。

内容的提问来源于stack exchange,提问作者user642832

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:14