如何在不使用 Vim 中的可视模式的情况下有效地删除段落中每行的前 N ​​个字符?

如何在不使用 Vim 中的可视模式的情况下有效地删除段落中每行的前 N ​​个字符?

在 vim 中,是否可以在不使用可视模式或多次使用点命令的情况下删除段落中每行的前 N ​​个字符?

转变

www.some_website.com
www.some_webiste2.com

some_website.com
some_webiste2.com

不使用视觉模式或d4l j .

我想我的问题也可以表述为“段落文本对象是否有逐行运算符?”

答案1

在一系列行上执行替换可能是最“类似 Vim”的解决方案。

假设你想研究 Vim 认为的段落

:'{,'}s/^www\.

如果你喜欢计算字符:

:'{,'}s/.\{4}

也可以使用:normal

:'{,'}norm! 4x

:help navigation:help :normal:help \{

答案2

除了在另一个答案中提到的substitute并直接使用normal命令之外,您还可以d4l使用以下命令在任意行中重复正常命令(如):global

:g/^www/normal d4l

解释:

  • :g/<patter>/- 在匹配的任何行上执行<pattern>-.将匹配所有非空行,^www\.仅匹配以 url 开头的行
  • normal d4l-d4l以正常模式执行

相关内容