删除

在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 快速删除指定的一段字符

results matching ""

    No results matching ""