PHP5.3闭包在VIM中的缩进问题

4

我尝试过几种不同的PHP缩进脚本,但它们都无法处理以下代码的缩进:

myfunc(function(){
    echo "hello";
    if(1==2){
        echo "world";
    }
});

你能指出适用于新的PHP5.3语法的vimrc设置或vim的php缩进文件吗?

更新:这是我得到的:

myfunc(function(){
        echo "hello";
        if(1==2){
        echo "world";
        }
        });

我使用从http://www.2072productions.com/vim/indent/php.vim John Wellesz下载的7.3捆绑缩进。其余的PHP语法已正确缩进。

如果他正在通过SSH编码(假设),GUI编辑器不是一个选项,除非Gedit有SSH。 - robx
请问您能否编辑一下您的问题,这样我们才能看到您所看到的内容?在这里,它似乎是按照我期望的缩进方式进行缩进的。我使用的是 此语法文件此缩进文件 - romainl
注意 - 我没有使用cindent,我在我的.vimrc文件中还需要添加其他内容吗? - romaninsh
如果您正在通过SSH进行编辑,可以使用SFTP来使用GUI编辑器。我一直都在使用Kate。 - John Chadwick
@John 我知道,但那不是我正在寻找的确切解决方案。 - romaninsh
有人能确认并发布 .vimrc 文件吗?如果 2072productions 缩进文件在我的代码上有效,请分享一下。 - romaninsh
1个回答

0

可能是因为您的闭包语法不正确。据我所知,闭包不应该有名称。例如,对于 preg_replace_callback 函数,您可以传递一个包含使用 function($matches){/* logic */} 定义的闭包的变量,或者直接传递上述代码本身。

您在这里尝试定义一个回调参数中的函数。对于您的脚本来说,这是非常糟糕的 xD

只需像这样摆脱名称,然后看看是否有帮助:

myfunc(function(){
    echo "hello";
    if(1==2){
        echo "world";
    }
});

PHP文档也展示了闭包的语法: http://php.net/manual/zh/functions.anonymous.php


抱歉,我没有注意到。我已经修复了闭包,但格式仍然不正确。 - romaninsh
我不知道 - 我只是认为可能会失败,因为 vim 由于闭包错误无法正确理解发生了什么。 - ShotgunToothpaste

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接