0012 vim下php文件中自动缩排html代码

问题:vim下怎样在php文件中通过 = 命令自动缩排html代码?

解决:

1、先说下html自动缩排
我的vim是7.4版本,已经包含了html.vim之类的缩排插件,但是缩排的时候<body> <head> 没有进行缩排
在.vimrc中加入如下代码即可对 <body> <head> 也进行缩排

" html indent
filetype indent on
let g:html_indent_inctags = "body,head,tbody" 	" 缩进body head
" let g:html_indent_script1 = "inc"		" 缩进<script>标签
" let g:html_indent_style1 = "inc"		" 缩进<style>标签

2、解决php文件中html代码缩进

创建 ~/.vim/indent/php.vim 文件,如果没有indent目录,就先创建indent目录
然后在 php.vim 文件中粘贴如下代码并保存

" Better indent support for PHP by making it possible to indent HTML sections
" as well.
if exists("b:did_indent")
	finish
endif
" This script pulls in the default indent/php.vim with the :runtime command
" which could re-run this script recursively unless we catch that:
if exists('s:doing_indent_inits')
	finish
endif
let s:doing_indent_inits = 1
runtime! indent/html.vim
unlet b:did_indent
runtime! indent/php.vim
unlet s:doing_indent_inits
function! GetPhpHtmlIndent(lnum)
	if exists('*HtmlIndent')
		let html_ind = HtmlIndent()
	else
		let html_ind = HtmlIndentGet(a:lnum)
	endif
	let php_ind = GetPhpIndent()
	" priority one for php indent script
	if php_ind > -1
		return php_ind
	endif
	if html_ind > -1
		if getline(a:num) =~ "^<?" && (0< searchpair('<?', '', '?>', 'nWb')
					\ || 0 < searchpair('<?', '', '?>', 'nW'))
			return -1
		endif
		return html_ind
	endif
	return -1
endfunction
setlocal indentexpr=GetPhpHtmlIndent(v:lnum)
setlocal indentkeys+=<>>

3、在 .vimrc 中还需要添加 filetype indent on 打开根据文件类型自动缩进
在vim命令模式下中输入 gg=G 即可完成自动缩排

参考:
http://www.vim.org/scripts/script.php?script_id=2075
http://blog.longwin.com.tw/2009/01/vim-indent-for-php-html-2009/
http://cache.baiducontent.com/c?m=9d78d513d9871af04fede53c5754c066680ec63c62c0d0642488c51fcf224f060738ece161645213d2b6617a45f4164bea8773296e5873a09bbfd91782a6d77376d33a44275ac01652c41edb901a73967cd64deedb58a0f8b26fd3e8c5d4ab000e8a44020ec2aac94d07608f34b64e26e4d2c30e4a01&p=c06ccc04969d12a05abd9b7e0b1791&newp=9370c64ad48703fa08e294780c4dcf231610db2151d6d7143b96c6&user=baidu&fm=sc&query=vim+php+html+indent&qid=a72951080000046d&p1=2

时间: 2024-07-31 16:04:29

0012 vim下php文件中自动缩排html代码的相关文章

文件上传时,上传到webapps目录下的文件会自动删除

1:文件上传时,上传到webapps目录下的文件会自动删除的原因? tomcat目录下的webapps 文件夹是部署目录,当重新部署服务,上传的文件不在部署文件的范畴内,即此时开发工具中没有上传的文件,所以上传的文件就没有了. 2:解决方法 把文件上传路径设置到webapps目录之外,可以在Tomcat目录下建立一个文件夹,如:upload 3:简单实现 html文件: <!DOCTYPE html> <html> <head> <meta charset=&qu

Linux查找和替换目录下所有文件中字符串(转载)

转自:http://rubyer.me/blog/1613/ 单个文件中查找替换很简单,就不说了.文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结. 查找文件夹下包含字符串的文件 例:查找/usr/local目录下所有包含”rubyer.me”的文件. grep -lr 'rubyer.me' /usr/local/* vim替换单个文件中所有字符串方法 例:替换当前文件中所有old为new :%s/old/new/g #%表示替换说有行,g表示替换一行中

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) , 已有13次阅读 ,共0个评论 依照我一惯得套路,我会先说一点废话. PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台.通过它,开发商能够使用HTML.CSS及JavaScript来开发本地移动应用程序.因此,眼下开

Windows下Apache服务器中自动配置二级子域名

今天我们介绍的这个办法,只需要简单修改 httpd-vhosts.conf 文件,配合 .htaccess 文件即可实现自动配置二级域名. 我们这里以 wpchina.com 为例,以下代码中的 wpchina.com 都可以替换成你自己想要域名. 我们的目标是,不同的子域名可以访问不同目录下的网站: wpchina.com => / : home.wpchina.com => /home: bbs.wpchina.com => /bbs: … 第一步,确认安装好 Apache 服务器,

vim恢复交换文件中的内容

交换文件的产生可能有几种情况: 1,当你用vim编辑一个文件时,发生突发事件,导致窗口关闭,或者系统崩溃重启: 2,另一个vim正在编辑该文件: 下面具体说下第一种情况: 原文件: # cat a.txt  This is a test for vim. line 1 line 2 line 3 在文件里面添加了新的内容: This is a test for vim. line 1 line 2 line 3 ### Add new lines: Line 4 Line 5 Line 6 还没

在文件夹下所有文件中查找字符串(linux/windows)

在linux下可以用 grep "String" filename.txt#字符串 文件名grep -r "String" /home/#递归查找目录下所有文件来查找单个文件或者目录下所有文件是否包含某个字符串 windows下同样可以实现类似功能 findstr可以完成这个工作. findstr /s /i "string" *.*上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string"这个字符串.

linux替换目录下所有文件中的某字符串

比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件-r 表示搜索子目录-l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件 转自:http://blog.csdn.net/wide288/article/details/22387723

linux下用sed和grep命令替换目录下所有文件中的字符串

试例如下: 第三条命令是将当前目录下代码中所有的"arm-none-linux-gnueabi" 替换成 "arm-linux" sed -i 's/arm-none-linux-gnueabi-g++/arm-linux-g++\ -O2\ -I\$\(INC\)\ -I\$\(INCSYS\)\ -static/g' `grep arm-none-linux-gnueabi-g++ . -rl` sed -i 's/arm-none-linux-gnueabi-

「Shell」macOS系统下替换文件中的字符串

shell处理这个问题其实很简单,但是网上搜到的大部分都是Linux下的操作.如下: sed -i ‘s/[匹配字符串]/[替换字符串]/g’ [文件名] 而我的系统是macOS,使用这个命令一直不成功,都快质疑人生了... 直到看到这句话: sed在Mac系统的命令行下使用时,需要为原文件设定一个备份文件 sed -i ‘.bak’ ‘s/Test String/New Test String/g’ *.txt 如果不想设置备份文件时,在第一个单引号里什么都不输入: sed -i ” ‘s/T