如何将命令应用于所有行?


19

如果要缩进文档中的所有行,可以键入>G以将其应用于当前行及以下行,然后键入和并将>gg其应用于上方行。

有没有可以同时应用>到所有行的组合?

Answers:


19

您正在寻找:>命令和整个文件的范围1,$%简称)。

:%>

有关更多帮助,请参见:

:h :>
:h :range

5
由于该问题的标题(“将命令应用于所有行”),我觉得值得指出的是,该示例中的示例提到了Normal-mode运算符>,而此答案使用了Command-mode command :>。严格来讲,这些不是同一件事。它们具有相同的名称应视为巧合;不要以为您通常可以互换运算符和命令。例如,gU运营商将文本转换为大写,但是:%gU不是一个有效的命令,以同样的适用于整个缓冲区。
tommcdo 2015年


3

无需退出普通模式,您只需执行以下操作:

gg>G

2
不利的
一面

所有其他答案都有缺点,OP没有提到“尊重光标位置”是必须的。
romainl 2015年

1
<co>可用于返回到先前的位置@romainl的解决方案要求您返回两次,而其他仅要求返回一次
Brett Y

当然,您会喜欢保持自己的位置的价值,以及保持该位置的答案将是有价值的。
TankorSmash 2015年

1
这就是为什么它没有被低估的原因。这只是一条纸条,说某处有更好的选择,他们应该继续寻找。例如,在SE编程网站上,解决问题的草率代码可以解决问题,但是您仍然希望找到另一种解决问题并且看起来不错的解决方案。
TankorSmash 2015年

3

尚未提及的另一种选择:

:g/^/>

这将>在与模式匹配的所有行上运行命令^

缺点是,这将覆盖您的搜索历史记录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.