在Vim中,纠正所有行缩进的命令是什么?

通常情况下,我将代码复制并粘贴到远程终端,然后把整个事情搞砸了。我想一下子解决这个问题。


当前回答

=时,indent命令可以进行动作。gg表示文件的开始,=表示缩进,G表示文件的结尾,gg=G。

其他回答

对于vi编辑器,使用:insert。这将保持所有的格式,而不是插入自动缩进。一旦完成,按转义查看实际格式化的文件,否则你会看到一些垃圾字符。^我 例句:

public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert"); 
}

:设置粘贴是你的朋友,我使用putty,最终在窗口之间复制代码。在我开始使用:set paste(和:set nopaste)之前,复制/粘贴正是因为这个原因让我感到不适。

您可以创建一个映射来完成这个任务。

这将自动缩进整个文件,仍然保持你的光标在你的位置:

nmap <leader>ai mzgg=G`z

你可以使用整洁的应用程序/实用程序来缩进HTML和XML文件,它在缩进这些文件时工作得很好。

修饰XML文件

:!tidy -mi -xml %

修饰HTML文件

:!tidy -mi -html %

对于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)