it-swarm.cn

自动缩进/格式化Vim代码?

我会尽可能地使用Vim。我对Vim和像Aptana这样的IDE)的最大了解之一是自动缩进的能力。

有没有一种自动格式化代码(HTML,CSS,PHP)的方法,以便正确缩进?

如果是这样,如何将其安装到vim中?我不太了解插件。我尝试查看此线程,它使我更加困惑: 如何更改vim自动缩进行为?

36
chrisjlee

要自动缩进整个文件:

gg
=G

解释:

  • gg-转到文件开头
  • G-转到文件末尾
  • =- 缩进
59
takeshin

我不知道如何自动格式化现有代码,但是如果您正在编写代码并且需要自动缩进:

  • :set autoindent (要么 :set ai)将启用自动缩进
  • Ctrl--d 取消缩进(又称缩进)代码
  • 制表符或要缩进的空格-我个人使用制表符
  • :set tabwidth=4 (要么 :set tw=4)将控制标签应缩进多少空格
  • >>命令将缩进当前行。如果以数字开头,请说4>>,则将从当前行开始缩进4行。
  • 同样,<<命令将取消缩进一行

希望这给您一个良好的开端。

17
Hai Vu

自动缩进*.sh

只需在~/.vimrc中添加以下行

filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
4
Rahul Patil

该插件使您可以更轻松地对代码执行格式化。它集成了外部格式化程序,并且回退了vim的缩进功能。

https://github.com/Chiel92/vim-autoformat

另外,请注意格式化和缩进之间的区别。缩进仅校正每行之前的空格,而格式化还处理其他任何事情,例如运算符周围的空格等。

2
Chiel ten Brinke

创建/编辑~/.vimrc文件并添加以下行:

set autoindent
2
Akshat Maheshwari

vim的自动格式化/缩进效果很好。首先,将此行放在您的~/.vimrc中:

filetype plugin indent on

然后在vim中打开文件并输入gg=G

gg将光标移动到第一行。=运行indent命令。G告诉indent命令从此处运行到最后一行。)

如果自动格式设置看起来真的很糟糕,就像每行都缩进一样,则运行:scriptnames并检查.../indent/html.vim(或您使用的任何语言)是否在列表中。如果不是,请确保您的~/.vimrc是正确的。或者,如果您从vim命令行运行:filetype plugin indent on,则需要重新打开文件:e

0
wisbucky

在bash中,我这样做:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3

这消除了注释,并使脚本“重击方式”缩进了缩进。如果脚本包含HEREDOCS,它将不起作用,但是如果您这样做:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3

它可以与任何脚本一起使用,但是整个脚本将缩进4个空格。随时进行修改,但在脚本中引用我的名字并将其发布! :D

0
Zibri