我会尽可能地使用Vim。在Vim和诸如Aptana之类的IDE之间,我最大的把握之一就是能够自动缩进。
是否有一种自动格式化代码(HTML,CSS,PHP)的方法,以便正确缩进?
如果是这样,如何将其安装到vim中?我不太了解插件。我尝试查看此线程,它使我更加困惑:如何更改vim自动缩进行为?
我会尽可能地使用Vim。在Vim和诸如Aptana之类的IDE之间,我最大的把握之一就是能够自动缩进。
是否有一种自动格式化代码(HTML,CSS,PHP)的方法,以便正确缩进?
如果是这样,如何将其安装到vim中?我不太了解插件。我尝试查看此线程,它使我更加困惑:如何更改vim自动缩进行为?
Answers:
gg=G
从外壳执行而不打开文件?
我不知道如何自动格式化现有代码,但是如果您正在编写代码并且需要自动缩进:
:set autoindent
(或:set ai
)将启用自动缩进:set tabwidth=4
(或:set tw=4
)将控制标签应缩进多少空格>>
命令将缩进当前行。如果用数字作为前缀,则说4>>
它将缩进4行,从当前行开始。<<
命令将取消缩进一行希望这给您一个良好的开端。
={motion}
在普通模式下使用-例如,=G
将缩进从当前行到文件末尾的所有代码。==
将缩进当前行。
:filetype indent on
)
该插件使您可以更轻松地对代码执行格式化。它集成了外部格式化程序,并且回退了vim的缩进功能。
https://github.com/Chiel92/vim-autoformat
另外,请注意格式化和缩进之间的区别。缩进仅校正每行之前的空格,而格式化还处理其他任何事情,例如运算符周围的空格等。
创建/编辑~/.vimrc
文件并添加以下行:
set autoindent
:set autoindent
仅对当前文件启用自动缩进。将其添加到.vimrc
文件中可以永久自动缩进。
在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
sed
cat script_to_be_reindented.sh | sed 's#^# #g'
vim的自动格式化/缩进效果很好。首先,将此行放入您的~/.vimrc
:
filetype plugin indent on
然后在vim中打开文件并键入 gg=G
(gg
将光标移动到第一行。=
运行indent命令。G
告诉indent命令从此处运行到最后一行。)
如果自动格式化看起来真的很糟糕,就像每行都缩进一样,请运行:scriptnames
并检查列表中是否包含.../indent/html.vim
(或使用的任何语言)。如果不~/.vimrc
正确,请确保您是正确的。或者,如果:filetype plugin indent on
从vim命令行运行,则需要重新打开文件:e