字”?例如,假设我要删除包含“ WORD”的每一行。我可以想到几种方法来完成此操作,但似乎没有一种是理想的方法。
1)
:s%/WORD//g
,然后手动按
xyz
直到不再出现。但是,如果要执行很多行,这将很耗时。2)
,然后例如:
/WORD
但这将要么A)丢失一堆线,要么B)删除一堆多余的线。 br />有更好的方法吗?
#1 楼
您可以为此使用:global
和:normal
命令。 :global
命令具有以下语法:然后,您可以使用:normal
命令使用:global
在每个单词出现时运行一系列击键。类似这样: br /> 请注意,每次出现特殊键之前必须加一个反斜杠。
有关这些命令的更多信息,请参阅
<Ctrl>
和:execute
。评论
击败我我猜我打字太慢了。 :)
–通配符
2015年10月13日在17:57
#2 楼
仅出于完整性考虑,如果您匹配-在您的示例中(删除包含WORD的整行)-包含WORD的整行,则可以使用:substitute
,例如:>这具有隐式的“替换匹配,不包含任何内容”,即它的缩写形式:
带有
\zs
的\ze
(在替换零件中),\(
可能非常强大。#3 楼
看来您正在寻找:global
。:g/WORD/d_
评论
下划线是做什么的?
–通配符
15年10月13日在17:48
这可行,但是我所知道的命令都不起作用。我不断收到“不是编辑器命令”。
–詹姆斯
2015年10月13日在17:56
@Wildcard:下划线将丢弃正在剪切的内容。执行的命令实际上是:delete,而不是普通模式操作d。
–卢克·赫米特(Luc Hermitte)
2015年10月14日在7:22
@DJMcMayhem:对于其他常规操作,您需要:normal。而且,如果需要特殊键,甚至可能需要:exe->`exe“ normal aFooFar \
–卢克·赫米特(Luc Hermitte)
2015年10月14日在7:24
评论
请注意,您所描述的500 @ d实际上是安全的。一旦找不到搜索词,宏播放将停止。因此,在删除所有包含该行的行之后,您只会看到错误“未找到模式:WORD”。@Wildcard谢谢,真是太好了!