在 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
以正常模式执行