vim删除多行

跨行删除, 删除多行剪切多行

3大S=小c3小c=3小c小c , 删除本行及下方2行,共3行 , 留一个空行, 并进入插入编辑模式
c3↓=3c↓ , 删除本行及下方3行,共4行, 留一个空行,并进入插入编辑模式
c3↑=3c↑ , 删除本行及上方3行,共4行, 留一个空行,并进入插入编辑模式


冒号开头 , 可以有空格, 比如 :1,9d回车 可以写成 : 1 , 9 d 回车
:1,9d回车 剪切1到9行, 仍然停留在esc模式
:1,+9d回车 剪切1及之后9行,共10行, 仍然停留在esc模式
:99-9,99d回车 剪切99及之前9行,共10行, 仍然停留在esc模式
:99-9,130d回车 剪切99及之前9行,和99到130行, 仍然停留在esc模式
点或无表示本行
:,9d回车:.,9d回车 剪切本行到第9行, 仍然停留在esc模式
:-3,d回车:.-3,.d回车.:-3,d回车:-3,.d回车剪切本行及之前3行共4行,任然停留在esc模式
:,+4d回车:.,.+4d回车:.,+4d回车:,.+4d回车 剪切本行及之后4行共5行,任然停留在esc模式


删除剪切本行到开头,本行到末尾

:,$d:.,$ddG 剪切删除本行到最后一行, 任然停留在esc模式
:,1d:.,1dd1Gdgg 剪切删除本行到第一行, 任然停留在esc模式

删除

c,C,s,S纯删除,会进入编辑模式,
d,D,x,X是剪切,为 方便p,P粘贴,将保持在Esc模式

删除,然后自动进入文字插入模式
  1. 大S 清空光标行 (大写S) , 保留换行符, 行还在,变成空行,
    S=cc=c1c=1cc

    s 删除光标字符 (小写s) , 删除一个字符

  2. 大C 删除光标到行尾 (大写C) , 连同光标字符到行尾都删除, 并进入编辑模式

    c (小写c)操作语法类似dy , 作用是删除, 如同d, 只是执行后会进入编辑模式
    cc=c1c=1cc=S 清空光标行 , 保留换行符, 行还在, 变成了空行,
    3ch=c3h光标前三字符   3cl=c3l光标及后两字符
    c0行首到光标   c^本行第一个字符到光标   c$光标到行尾
    3ccc3c 本行和下两行
    C 光标到行末 (大写C)

删除,停留在 ESC 模式

d,D,x,X是剪切,有删除效果,并停留在ESC模式
dd=d1d=1dd 剪切(复制并删除)当前行, 行消失, 停留在ESC模式
小写x=1x~=约等于Delete: 删除光标字符, del键不是剪切,只删除,不复制
大写X=1X : 剪切左边一个字符, 回退键不会删除
小写88x剪切右边连同光标共88个字符
大写88X剪切光标左边(不含光标)88个字符


行内删除,删除整行
删除光标到本行开头 , 删除光标到本行末尾
  • d0 删除光标到本行开头, 停留在esc模式
    d^ 删除光标到第一个字母, 如果前面还有空格则不会到开头, 并停留在esc模式
    d$D 删除光标到本行末尾, 停留在esc模式

  • 大C 删除光标到行尾 (大写C) , 连同光标字符到行尾都删除, 并进入编辑模式
    大S 清空光标所在行, 并进入编辑模式


删除当前整一行

删除当前整行的效果有:

  1. 连同换行符一起删除,行消失
  • cc=c1c=1cc=大S 清空光标行 , 保留换行符, 行还在, 变成了空行,并进入插入编辑模式
  1. 保留换行符,行还在,变成空行,保留空行
  • dd=d1d=1dd 剪切(复制并删除)当前行, 行消失, 停留在ESC模式
跨行删除, 删除多行剪切多行

3大S=小c3小c=3小c小c , 删除本行及下方2行,共3行 , 留一个空行, 并进入插入编辑模式
c3↓=3c↓ , 删除本行及下方3行,共4行, 留一个空行,并进入插入编辑模式
c3↑=3c↑ , 删除本行及上方3行,共4行, 留一个空行,并进入插入编辑模式


冒号开头 , 可以有空格, 比如 :1,9d回车 可以写成 : 1 , 9 d 回车
:1,9d回车 剪切1到9行, 仍然停留在esc模式
:1,+9d回车 剪切1及之后9行,共10行, 仍然停留在esc模式
:99-9,99d回车 剪切99及之前9行,共10行, 仍然停留在esc模式
:99-9,130d回车 剪切99及之前9行,和99到130行, 仍然停留在esc模式
点或无表示本行
:,9d回车:.,9d回车 剪切本行到第9行, 仍然停留在esc模式
:-3,d回车:.-3,.d回车.:-3,d回车:-3,.d回车剪切本行及之前3行共4行,任然停留在esc模式
:,+4d回车:.,.+4d回车:.,+4d回车:,.+4d回车 剪切本行及之后4行共5行,任然停留在esc模式


删除剪切本行到开头,本行到末尾

:,$d:.,$ddG 剪切删除本行到最后一行, 任然停留在esc模式
:,1d:.,1dd1Gdgg 剪切删除本行到第一行, 任然停留在esc模式

正则匹配删除

:g/pattern/d 剪切匹配的所有行, 仍然停留在esc模式
:g!/pattern/d 剪切不匹配的所有行, 仍然停留在esc模式
:g/^$/d 剪切删除所有空行


将光标移到要删除的起始字符, 按大V(整行选)或 小v(片选) 或 ctrl+v(块选) 后, 然后按 dx删除并停在esc模式 , 或sc删除并进入编辑模式


.

删除本行及上下方几行

3大S=小c3小c=3小c小c , 删除本行及下方2行,共3行 , 留一个空行, 并进入插入编辑模式
c3↓=3c↓ , 删除本行及下方3行,共4行, 留一个空行,并进入插入编辑模式
c3↑=3c↑ , 删除本行及上方3行,共4行, 留一个空行,并进入插入编辑模式

:-3,d回车:.-3,.d回车.:-3,d回车:-3,.d回车 剪切本行及之前3行共4行,任然停留在esc模式
:,+4d回车:.,.+4d回车:.,+4d回车:,.+4d回车 剪切本行及之后4行共5行,任然停留在esc模式


删除所有行删除整个文件
  • :%d

  • :,$d:1,$d

  • :%d _ , 这里的 _ 是 Vim 的一个特殊标记,表示无操作(no-op)。

  • ggdG : gg到顶,dG删(剪切)到尾巴

  • Gdgg : G到底, dgg删除(剪切)到顶

  • 刚打开文件时, 光标在顶端行首, 输入999999C 大写C, 删除且进入编辑模式

  • gg999999C , gg到顶端行首, 然后 999999C 大写C, 删除 并进入编辑模式

  • 刚打开文件时, 光标在顶端行首, 输入999999cc 两个小写c, 删除且进入编辑模式

  • gg999999cc , gg到顶端行首, 然后 999999cc 两个小写c, 删除 并进入编辑模式

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐