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