在vim中删除到句末

时间:2015-05-28 03:00:37

标签: vim

所以我正在玩vim冒险而且我被卡住了。我需要一个Vim命令来删除红色键。我以为dd会这样做,但只会删除当前行。

enter image description here

9 个答案:

答案 0 :(得分:11)

使用 d a s d i s < / kbd>删除一个句子。使用 d a p d i p 删除一个段落。有关详细信息,请参阅:help text-objects。与您的问题无关,请参阅this wiki页面,了解提供其他非常有用的文本对象的插件。

答案 1 :(得分:7)

主题中的查询答案“删除到vim中的句子结尾”尚未发布。它可能对OP没有用,但对于未来的搜索者来说也是如此。

d )跳转到下一个句子的开头,因此matrix将删除(从光标)直到下一个句子的开头。需要注意的一个陷阱是vim通过句点和两个空格检测同一段落中两个句子的界面。如果你在一段时间之后有一个空格,它将经过它并删除下一个句子。

如果您特别想要移动(并删除)句子中的最后一个字符,根据this vi.SE answer更复杂:

答案 2 :(得分:1)

您可以使用命令: d 2 d ,但我不知道它是否在游戏中有效。

答案 3 :(得分:1)

另一个选项(不确定它是否在游戏中有效)是删除最多并包括句点:

d / \ / 电子

在删除命令后使用这样的搜索模式时,你必须逃避这段时间。

如果你只限于一行,那就更简单了:

d ˚F

答案 4 :(得分:1)

解决方案是dk删除该行及其上方的行,或dj删除该行及其下方的行。

我原来的问题实际上不是正确的问题(有多个句子)。

答案 5 :(得分:0)

如果您要从J开始删除.,请J开始并使用df.

如果要删除这两行,请2dd

答案 6 :(得分:0)

Vim语法是[Nubmer] [操作员/命令] [动作或文本对象]

因此,在这种情况下,您可以使用:2dd

答案 7 :(得分:0)

要删除到句尾,从光标所在的位置,使用字母,使用“d)”。 “d”是删除命令对象,后跟一个运动对象“)”,它将光标(和删除过程)推进到句子的末尾。

要删除一个句子的“周围”,包括所有多余的空格,请使用“das”(删除周围的句子)。或者要删除句子内部,而不是所有空格,然后使用“dis”(删除句子内部)。

一旦你理解了 VIM 语言,那么你就可以轻松记住大量的操作。使用此表了解 VIM 的词汇:

计数数字 + 文本对象命令 + 运动(或操作符) “3das”将执行“删除3次左右的句子”

因此,如果可行,您可以放置​​一个数字,后跟... 命令:

d=delete 
y=yank  (into memory buffer to "put" later)
c=change (delete then insert new text)

然后是一个动作:

) = move cursor to end of sentence
( = move cursor to beginning of prior sentence
} = move cursor to the next paragraph
{ = move cursor to the beginning of the prior paragraph
w = move cursor to next word
b = move cursor back a word
$ = move cursor to the end of the logical line
0 = (zero) move cursor to the beginning of the logical line
G = move cursor to the end of the file
gg = move cursor to the beginning of the file
h, j, k, or l (you might have to look those up)

OR 而不是 Motion,使用以下方法定义区域:

a = around
i = inside

后跟光标周围区域的名称:

s = sentence
p = paragraph
w = word
t = xml-tag <tag example>  lots of text between tags </tag example>
< or > =  inside or around a tag, frequently found in xml documents
{ [ ( ) ] } = inside or around any type of bracket ...
... {a large area [some more (a little stuff) things] of a great many things }

答案 8 :(得分:0)

实际上,我从帮助文件中发现这个表格是块命令的最佳概述:

"dl"        delete character (alias: "x")
"diw"       delete inner word
"daw"       delete a word
"diW"       delete inner WORD (see |WORD|)
"daW"       delete a WORD (see |WORD|)
"dgn"       delete the next search pattern match
"dd"        delete one line
"dis"       delete inner sentence
"das"       delete a sentence
"dib"       delete inner '(' ')' block
"dab"       delete a '(' ')' block
"dip"       delete inner paragraph
"dap"       delete a paragraph
"diB"       delete inner '{' '}' block
"daB"       delete a '{' '}' block

所以删除一个句子是das或删除一个段落是dap