从光标向前删除到 VIM 中 HTML 标记的末尾?
Delete forward from cursor to the end of HTML tag in VIM?
我们可以用“dit”删除HTML标签中的所有内容。
但我的问题是,在示例中,我想保留第一行并删除其余行,而不使用像“7dd”这样的命令。
有没有比在这种情况下使用“7dd”更好的方法?谢谢。
<section className="booklist">
<Book /> ==> I want to keep this line, and delete the rest
<Book />
<Book />
<Book />
<Book />
<Book />
<Book />
<Book />
</section>
您可以使用 d/<string>
删除第一次出现 <string>
之前的所有内容。
要在您的示例中执行此操作:将光标放在第一列的第三行并键入:d/<\/sec
并按 <CR>
(Enter
) 删除行。
此方法的唯一缺点是它更改了 last-search 寄存器 ("/
)。
我认为你不能直接移动到文本对象的开头或结尾,但是在你的示例中实现你想要的并保持使用“标签”文本对象的优势的一种方法是
Vitojd
如中,line-wise可视化select标签的内容,跳转到selection的第一行,de-select就可以了(通过向下移动) , 删除.
这是一个变体:
vit<Esc>d''
vit<Esc>
视觉选择整个内部标签,但我们真正想要的是将光标移动到区域末尾的副作用,因此我们离开视觉模式。
d''
从这里切到我们在最后一个垂直运动之前所在的线。
这是另一个:
V/sec/-<CR>d
V/sec/-<CR>
进入 visual-line 模式并将其扩展到下一次出现的 sec
减去一行。
d
删除视觉选择的行。
另一种解决方案可以是d/<string>/-
在这个例子中:d/sec/-
但是光标必须位于第一个的开头 <Book />
我们可以用“dit”删除HTML标签中的所有内容。
但我的问题是,在示例中,我想保留第一行并删除其余行,而不使用像“7dd”这样的命令。
有没有比在这种情况下使用“7dd”更好的方法?谢谢。
<section className="booklist">
<Book /> ==> I want to keep this line, and delete the rest
<Book />
<Book />
<Book />
<Book />
<Book />
<Book />
<Book />
</section>
您可以使用 d/<string>
删除第一次出现 <string>
之前的所有内容。
要在您的示例中执行此操作:将光标放在第一列的第三行并键入:d/<\/sec
并按 <CR>
(Enter
) 删除行。
此方法的唯一缺点是它更改了 last-search 寄存器 ("/
)。
我认为你不能直接移动到文本对象的开头或结尾,但是在你的示例中实现你想要的并保持使用“标签”文本对象的优势的一种方法是
Vitojd
如中,line-wise可视化select标签的内容,跳转到selection的第一行,de-select就可以了(通过向下移动) , 删除.
这是一个变体:
vit<Esc>d''
vit<Esc>
视觉选择整个内部标签,但我们真正想要的是将光标移动到区域末尾的副作用,因此我们离开视觉模式。d''
从这里切到我们在最后一个垂直运动之前所在的线。
这是另一个:
V/sec/-<CR>d
V/sec/-<CR>
进入 visual-line 模式并将其扩展到下一次出现的sec
减去一行。d
删除视觉选择的行。
另一种解决方案可以是d/<string>/-
在这个例子中:d/sec/-
但是光标必须位于第一个的开头 <Book />