删除
在vim中, 删除很多时候其实就是将当前内容剪切了(只剪切不粘贴), 使用d操作符, 下面如果不特殊说明就是在一般模式下
简单操作
- dd -- 删除当前行
- ndd -- 从当前行开始往下删除n行
- :n,md -- 删除n到m行, 如
:1,10d
删除1到10行的内容,注意是在底行模式下哦 - d0 -- 删除光标所在位置至行首的字符
- d$ -- 删除光标所在位置至行尾的字符
- dw -- 删除光标之后单词的剩余部分
- db -- 删除光标之前单词的剩余部分(如果光标在当前单词的开头, 则删除上一个单词)
- diw -- 删除光标上的单词 (不包括空白字符)
- daw -- 删除光标上的单词 (包括空白字符)
- dgg -- 删除光标所在行至文件开头的内容, 包含光标所在行
- dG -- 删除光标所在行至文件结尾的内容, 包含当前行
- x(小写) -- 删除光标所在的字符
- X(大写) -- 删除前一个字符
- Ctrl+u(编辑模式下) -- 删除光标所在位置至行首的字符, 挺有用的,
End Ctrl+u
就可以在编辑模式下删除整行.
复杂操作
快速删除某段内容
比如有段文字如下:
11111rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
nnnnnnnnnnnnnnnnnnnnnnnnnnnnn
ffffffffffffffffff
ggggggggggggggggggg33333
想要删除11111和33333之间的内容, 可以将文件改成下面的内容
11111{rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
nnnnnnnnnnnnnnnnnnnnnnnnnnnnn
ffffffffffffffffff
ggggggggggggggggggg}33333
即在11111后面加上个{
, 在33333前面加上个}
, 然后将光标移到{
之前的1上(也就是最后一个1), 输入da{
就可以把11111和33333之间的内容删除了.
另外,除了可以使用{ 外,还可以使用 "
, '
, (
等成对的特殊符号。
参考自: vim 快速删除指定的一段字符