>G
将其应用于当前行及以下行,然后依次输入和>gg
将其应用于上方行。是否有组合I可以一次将
>
应用于所有行吗?#1 楼
您正在寻找整个文件的:>
命令和1,$
范围(简称%
)。:%>
有关更多帮助,请参见:
:h :>
:h :range
#2 楼
缩进文档中所有行的一种方法::%>
#3 楼
无需退出普通模式,您只需执行以下操作即可:gg>G
评论
缺点是您在文件中失去了位置
–TankorSmash
2015年12月8日20:56在
所有其他答案都有缺点,OP没有提到“尊重光标位置”。
– romainl
2015年12月8日在21:05
–布雷特Y
2015年12月8日在21:24
当然,您会喜欢保持自己的位置的价值,以及保持该位置的答案将是有价值的。
–TankorSmash
2015年12月8日在22:33
这就是为什么它没有被低估的原因。这只是一条纸条,说某处有更好的选择,他们应该继续寻找。例如,在SE编程网站上,解决问题的草率代码可以解决问题,但是您仍然希望找到另一种解决问题且看起来不错的解决方案。
–TankorSmash
2015年12月8日在23:04
#4 楼
尚未提及的另一个选项::g/^/>
这将在与模式
>
匹配的所有行上运行命令^
。缺点就是这样会覆盖您的搜索记录。
评论
由于此问题的标题(“将命令应用于所有行”),我觉得值得指出的是,该示例中的示例提到了普通模式运算符>,而此答案使用了Command-mode命令:>。严格来讲,这些不是同一件事。它们具有相同的名称应视为巧合;不要以为您通常可以互换运算符和命令。例如,gU运算符将文本转换为大写,但:%gU是无效的命令,无法将其应用于整个缓冲区。
–tommcdo
2015年12月9日,0:43