在Vim中,纠正所有行缩进的命令是什么?
通常情况下,我将代码复制并粘贴到远程终端,然后把整个事情搞砸了。我想一下子解决这个问题。
在Vim中,纠正所有行缩进的命令是什么?
通常情况下,我将代码复制并粘贴到远程终端,然后把整个事情搞砸了。我想一下子解决这个问题。
当前回答
如果你不想使用:设置粘贴,中键单击,设置不粘贴,你也可以粘贴剪贴板的内容:
"*p
"+p
这样你就不用离开正常模式了。 如果您必须粘贴+或*取决于您如何选择文本,请参阅:help quoteplus。
其他回答
=时,indent命令可以进行动作。gg表示文件的开始,=表示缩进,G表示文件的结尾,gg=G。
1 G = G。这应该会缩进文件中的所有行。1G表示第一行,=表示自动缩进,最后一个G表示文件的最后一行。
对于复杂的c++文件,当使用vim的= filter命令时,vim并不总是能得到正确的格式。因此,对于这种情况,最好使用外部c++格式化程序,如style(或uncrustify),例如:
:%!astyle
Vim的'='函数默认使用内部格式化器(这并不总是正确的),但也可以使用外部格式化器设置它,如style,通过在这个问题中讨论的适当设置。
如果你想重新缩进你所在的块,而不需要输入任何和弦,你可以这样做:
[[=]]
对于XML文件,我使用这个命令
:1,$!xmllint --format --recover - 2>/dev/null
你需要安装xmllint(包libxml2-utils)
(来源:http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html)