是向上相当于$val = 'hello';
$str = <<<EOT
我是一个字符串
变量的值={$val}
EOT;
而Vim只能识别第二种,第一种无法识别$str = "我是一个字符串\n变量的值={$val}"
是向上相当于$val = 'hello';
$str = <<<EOT
我是一个字符串
变量的值={$val}
EOT;
而Vim只能识别第二种,第一种无法识别$str = "我是一个字符串\n变量的值={$val}"
只能识别EOT,也能识别EOT里面的变量{$val},但是不能识别字符串,假如字符串的颜色为绿色,而EOT内部的字符串就不会变成绿色。darasion 写了:其实,你不用EOT,用别的什么也可以,只要前后一致即可。
这种很长文章的字符串变量,一般都是保存在单独的文件里边,用到的时候 include 进来,我觉得没必要显示那么好看吧?
刚刚试验了一下可以正常显示,你说的是高亮显示语法么?
vim这样显示是正确的。可能你的理解有偏差。iny 写了:只能识别EOT,也能识别EOT里面的变量{$val},但是不能识别字符串,假如字符串的颜色为绿色,而EOT内部的字符串就不会变成绿色。darasion 写了:其实,你不用EOT,用别的什么也可以,只要前后一致即可。
这种很长文章的字符串变量,一般都是保存在单独的文件里边,用到的时候 include 进来,我觉得没必要显示那么好看吧?
刚刚试验了一下可以正常显示,你说的是高亮显示语法么?
代码: 全选
$str = <<<AAA
各种各样的文字,段落什么的。。。。。
这里的是纯字符串,里边有html什么的也不会特殊显示。
AAA;
是的,不光是EOT,还可以自定义。vim这样显示是正确的。可能你的理解有偏差。
还有,不一定非要EOT的,别的什么都可以用,比如你可以这么写:vim的显示如图:代码: 全选
$str = <<<AAA 各种各样的文字,段落什么的。。。。。 这里的是纯字符串,里边有html什么的也不会特殊显示。 AAA;
你可以这样理解:vim 用颜色区分了两种不同形式的字符串。iny 写了:是的,不光是EOT,还可以自定义。vim这样显示是正确的。可能你的理解有偏差。
还有,不一定非要EOT的,别的什么都可以用,比如你可以这么写:vim的显示如图:代码: 全选
$str = <<<AAA 各种各样的文字,段落什么的。。。。。 这里的是纯字符串,里边有html什么的也不会特殊显示。 AAA;
不过显示确实不对,就拿你这副图来说,hello是字符串,EOF里面也是字符串,那么除EOF里面的变量之外,其它的字符串也应该和hello是一样的颜色(都是字符串)。
下图是NetBeans IDE里面的显示效果,这样就完全正确了。
只能这样自我安慰了你可以这样理解:vim 用颜色区分了两种不同形式的字符串。
一种是常规的$str='abc';
另外一种是$str=<<<EOT
abc
EOT;
这个没有什么难,只要改改 syntax/php.vim 就可以实现了。如果你不想修改官方的,可以 cp 过来到自己的 ~/.vim/syntax 目录下进行编辑。iny 写了:一般情况下,字符串都是单引号和双引号,但是PHP有一种特殊的字符串,是以“<<<EOT”开头,EOT(EOT必须在行首,否则语法是错误的)结尾的字符串,类似于下面这种形式:是向上相当于$val = 'hello';
$str = <<<EOT
我是一个字符串
变量的值={$val}
EOT;而Vim只能识别第二种,第一种无法识别$str = "我是一个字符串\n变量的值={$val}"
你说到点子上了,就是这个意思poet 写了: 这个没有什么难,只要改改 syntax/php.vim 就可以实现了。如果你不想修改官方的,可以 cp 过来到自己的 ~/.vim/syntax 目录下进行编辑。
这种语法运用得非常多,并不光是 php 用。其实我在 syntax/lpc.vim 中已经实现了类似的语法着色。另外chip博士在 sh.vim 的脚本里应该也实现了类似的语法的。
理论上,你应该可以在你的 vim 发行版中找到 syntax 目录并自己研究一下相关语法着色。
爽啊,原来这么一句设定就搞定了,太感谢了!starwing 写了:其实根本不用改的,你自己输入这一行就可以看到效果了:
:hi link phpheredoc string
如果觉得效果满意,把上面一行加入vimrc就可以了。