首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Re)用Vim格式化PHP代码

(Re)用Vim格式化PHP代码
EN

Stack Overflow用户
提问于 2012-04-12 06:48:11
回答 3查看 489关注 0票数 1

如何格式化如下所示的PHP代码

代码语言:javascript
复制
class SomeClass
{
    function insideclass()
    {


    }
} 

在没有任何外部工具的情况下使用Vim?

代码语言:javascript
复制
class SomeClass {
    function insideclass() {


    }
} 

我并不是说这是格式化代码的最佳方式,但这是我们团队所遵循的。

编辑:删除了对片段的引用,这导致了对这个问题的一些困惑。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-12 07:58:49

你有两个不相关的问题,你找不到唯一的解决办法。

  1. 您不喜欢默认的class 代码片段. 没问题。如果它还没有出现,那么创建~/.vim/snippets/php.snippets并通过遵循其他答案定制它以适应您的团队的规则。Snipmate不够聪明,无法适应您的编码风格。
  2. 您现有的一些代码不符合您的编码规则. Snipmate根本帮不上忙,因为它只处理插入,而不是转换。您需要一些外部增白剂或一些宏。 编辑 下面是一个非常简单的命令,它完全可以在示例中执行您想要的操作。我不能保证它会对任何地方的一切都有用。把它当作一个幼稚的起点。 :G/^s*{s*$/普通kJ
代码语言:javascript
复制
- `:g/pattern` acts on all lines containing `pattern`, see `:h :global`.
- `^\s*{\s*$` matches all single `{` whatever the amount of whitespace between them and the beginning of the line.
- `normal` executes `normal` commands, see `:h :normal`.
- `kJ` goes up one line and `J`oins this line with the matched line.
- Done.

ENDEDIT

票数 4
EN

Stack Overflow用户

发布于 2012-04-12 06:54:51

为什么不修改那个插件的源代码呢?

例如,更改以下内容:

代码语言:javascript
复制
snippet class
    /**
     * ${1}
     */
    class ${2:ClassName}
    {
        ${3}
        function ${4:__construct}(${5:argument})
        {
            ${6:// code...}
        }
    }

代码语言:javascript
复制
snippet class
    /**
     * ${1}
     */
    class ${2:ClassName}{
        ${3}
        function ${4:__construct}(${5:argument}){
            ${6:// code...}
        }
    }
票数 2
EN

Stack Overflow用户

发布于 2012-04-12 06:56:33

所有的代码片段都存储在一个目录中。转到该目录并编辑所需的文件。

direcorty存储在vim目录中,名为snippets。在这里您可以看到一个php.snippets文件。转到该文件,在第70行,您可以编辑该类的代码片段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10118738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档