vi删除选中内容_如何优雅的删除代码-VIM

删代码一时爽,一直删一直爽。

删除应该是编码过程中非常高频率的操作了,不用vim的时候,一般就是选中删除或者跳到目标位置一直按Backspace或者Delete。而在vim中,你可以有上百中删除的姿势,比如下面这些操作。

我这里列出来的都是我日常中用的比较多的操作,且很多命令之间都是可以互相替换和组合的,比如i/a,d/s等等,这也是vim的灵活之处,大家具体场景可以活学活用。

一个字符

x

剪贴当前光表处的字符, 默认剪贴到vim的"("表示vim的默认寄存器,输入:reg 即查看“”对应的内容)寄存器

s

删除当前光标所在的字符,并进入插入模式

vd

选中当前字符,并删除;

v:进入Visual模式,默认选中当前光标处字符;

d:删除当前选中的内容

vc

选中当前字符,并更改(更改的意思就是删除并进入插入模式)

v:进入Visual模式,默认选中当前光标处字符;

c:删除当前选中字符,并进入插入模式

一部分

dw

删除从光标从到当前所在单词的词尾。

diw/daw

删除光标所在处的单词,i/a的区别在于i不会删除匹配符号(比如词尾的空格),a则反之

D/d$/

删除从光标到行尾的所有内容

d0/d^

删除从光标到行首的所有内容

dt{目标}

删除从光标到行内目标的位置。t可以理解为 到为什么位置/直到 的意思(until)

df{目标}

删除光标到f搜寻的目标位置(行内向后)

dF{目标}

删除光标到F搜寻的目标位置(行内向前)

以上d/D可以使用c/C进行替换,区别就是c会进行插入模式,d不会。

整行

dd

删除 当前行

S

删除当前行并进入Insert模式

Vd

进入Visual模式并选中当前行,然后删除选中内容

{行首}D

跳到行首,然后从光标所在处删到行尾

这里的行首操作可以有很多选择:

^ 跳到当前行第一个非空(非空格等非打印字符)字符

0 跳到当前行的第一个字符

_ 效果和^相同

{行首}C

跳到行首,删除到行尾并进入插入模式。

di{匹配符号}

比如代码:obj.equal((a + b) + "this is a string");

光标在第一个字符a的时候,输入di(或者di),就会删除括号内容内的a + b。

光标在停留在字符串内的字符t的时候,输入di“,就会删除整个字符串内的字符,留下一个空字符串。输入di(或者di)就会删除整个equal方法括号内的所有内容,留下一个空括号。

i可以理解为一种对称匹配,和下面a不同地方在于i不包含目标匹配符号,a则会包含目标匹配符号。

da{匹配符号}

参考上面的i的操作,i/a的不同之处在于i不好喊匹配符号,a则会包含匹配符号一起操作。

{数字}dd

从当前行开始,向下删除数字个行

:from,to d

从from行删除到to行,from和to可以替换为数字。

全部

:%d

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值