在Vim中,纠正所有行缩进的命令是什么?
通常情况下,我将代码复制并粘贴到远程终端,然后把整个事情搞砸了。我想一下子解决这个问题。
在Vim中,纠正所有行缩进的命令是什么?
通常情况下,我将代码复制并粘贴到远程终端,然后把整个事情搞砸了。我想一下子解决这个问题。
当前回答
如果你不想使用:设置粘贴,中键单击,设置不粘贴,你也可以粘贴剪贴板的内容:
"*p
"+p
这样你就不用离开正常模式了。 如果您必须粘贴+或*取决于您如何选择文本,请参阅:help quoteplus。
其他回答
在Vim中,使用:insert。这将保留所有的格式,而不会自动缩进。有关更多信息帮助:插入。
如果你不想使用:设置粘贴,中键单击,设置不粘贴,你也可以粘贴剪贴板的内容:
"*p
"+p
这样你就不用离开正常模式了。 如果您必须粘贴+或*取决于您如何选择文本,请参阅:help quoteplus。
对于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)
对于vi编辑器,使用:insert。这将保持所有的格式,而不是插入自动缩进。一旦完成,按转义查看实际格式化的文件,否则你会看到一些垃圾字符。^我 例句:
public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert");
}
对于复杂的c++文件,当使用vim的= filter命令时,vim并不总是能得到正确的格式。因此,对于这种情况,最好使用外部c++格式化程序,如style(或uncrustify),例如:
:%!astyle
Vim的'='函数默认使用内部格式化器(这并不总是正确的),但也可以使用外部格式化器设置它,如style,通过在这个问题中讨论的适当设置。