使用Vim修正HTML和PHP的缩进
我一直在使用Vim,并且无法在PHP文件中获得正确的HTML缩进。
例如,我想要的是为每个孩子缩进一个标签多于它的父母,如下所示。
- S
- M
- L
- XL
使用PHP-correct-Indent脚本,代码的格式如下:
- S
- M
- L
- XL
即使使用缩进的HTML,然后添加PHP代码,缩进也会被忽略,移动HTML代码的新行,而不会有任何缩进。
那么,有没有什么办法可以使用Vim来获取我想要在PHP文件中使用HTML的缩进格式呢?
这仍然困扰着我。 我只是认为最好的解决办法(对我个人而言)是这样的:
:set filetype=html
然后突出显示您的文字并点击= 。 繁荣! HTML格式的成功。 (不太理想,我知道,但至less是有效的。)
在Vim Wiki上有一组vimrc指令,叫做HTML的更好的缩进支持 ,它将根据块使用正确的插件。
还有一个Vundle / Pathogen插件 ,使用相同的代码,但更容易安装,并保持您的.vimrc干净。
病原
cd ~/.vim/bundle git clone https://github.com/captbaritone/better-indent-support-for-php-with-html.git
Vundle
放在.vimrc中
Bundle 'captbaritone/better-indent-support-for-php-with-html'
在vim中运行
:BundleInstall
在php + html中,我发现以下对我有好处。
:set ft=html # Change the file type to html =G # to indent all lines :set ft=phtml # Change the file type to phtml =G # to indent all php lines
对我来说,如果我第一次做的话,它会很好用:set ft=html ,然后:set syn=php 。
php-correct-indenting只关心你的PHP,并假设HTML的可读性是没有意义的。 XML压缩器可以很好地定位标签,但不能缩进处理指令的内容以匹配。 也许有一个缩进脚本可以理解PHP编程语言的类C语法和[X] [HT] ML标记语言是模板化的,但我从来没有遇到过。
不过,即使在php-correct-indenting之前,我也想要在你的例子中缩进缩进!
- etc. etc.
支持HEREDOC html样式。 这经常发生在我的代码中。
顺便说一句:它有更多的版本比旧的(脚本ID 604,亚历克斯贴在上面)
在你的.vimrc里面:
:function IndentPHPHTML() : set ft=html : normal gg=G : set ft=php :endfunction
使用Ctrl-Shift-L(或其他)缩进
nnoremap :call IndentPHPHTML()
在寻找解决scheme的日子之后,没有任何工作,最后这工作,添加到您的vimrc
au BufEnter,BufNew *.php :set filetype=html
在~/.vimrc文件中:
set expandtab set sw=4 set ts=4
expandtab选项将制表符转换为空格, sw选项将你的位移宽度设置为4, ts设置制表位为4个空格。