在vim中删除,直到句子结束

在vim中删除,直到句子结束,vim,Vim,所以我在玩vim adventures,我被卡住了。我需要一个Vim命令来删除红色的键。我原以为dd就可以了,但那只会删除当前行 您可以使用命令:d2d,但我不知道它是否在游戏中起作用。如果您想从J删除到并包括从J开始,然后使用df。 如果要删除这两行,则另一个选项(不确定它是否在游戏中起作用)是删除以下期间: d/\./e 在执行delete命令之后,使用类似于这样的搜索模式时,您必须逃过这段时间 如果仅限于一行,则更简单: df.使用das或dis删除句子。使用dap或dip删除段落。有关详

所以我在玩vim adventures,我被卡住了。我需要一个Vim命令来删除红色的键。我原以为
dd
就可以了,但那只会删除当前行


您可以使用命令:d2d,但我不知道它是否在游戏中起作用。

如果您想从
J
删除到
并包括
J开始,然后使用
df。

如果要删除这两行,则另一个选项(不确定它是否在游戏中起作用)是删除以下期间:

d/\./e

在执行delete命令之后,使用类似于这样的搜索模式时,您必须逃过这段时间

如果仅限于一行,则更简单:


df.

使用das或dis删除句子。使用dap或dip删除段落。有关详细信息,请参见
:帮助文本对象
。与您的问题无关,请参阅wiki页面,了解提供其他非常有用的文本对象的插件。

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

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

跳到下一句的开头,因此
d)
将(从光标)删除到下一句的开头。Vim使用
检测句子,表示句点+空格。这确实意味着
d)
如果光标位于分隔两个句子的句点或空格上,并且只会删除到下一个句子的第一个字符(这意味着它会删除空格或句点和空格,这几乎从来都不是所希望的)
das
将按照您的预期工作,删除句子和分隔符(句点+空格)


如果您特别想移动(并删除)句子中的最后一个字符,则根据以下内容会更加复杂:

Vim语法是[Nubmer][Operator/Command][Motion或Text Object]


因此,在本例中,您可以使用:
2dd

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

要删除一个句子的“环绕”,包括所有多余的空格,请使用“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)
或者使用以下方法定义区域字段,而不是运动:

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 }
s=句子
p=段落
w=字
t=xml标记标记之间有大量文本
<或>=标记内部或周围,经常在xml文档中找到
{[()]}=在任何类型的括号内或括号周围。。。
... {很多东西中的大面积[一些(更多的)小东西]

我从帮助文件中发现此表是块命令的最佳概述:

"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

游戏中的光标在哪里?您是否不想删除光标周围的句子,而不是从光标到结尾的句子?而且,这属于vi。SE@AakilFernandes既然你找到了答案,我认为你应该删除“当前答案都无效”的评论。访问者可能会被误导,以为他们在这篇文章中找不到答案。@J…完了。感谢您键入大写字母
D
作为参考:
D
删除下一个对象<代码>s
用于句子<代码>a
表示“周围”,而
i
表示“内部”。它们之间的区别是空格。虽然人们希望
ds
ds
(或类似)从光标到句子结尾/开头进行删除,但需要使用