如何格式化如下所示的PHP代码
class SomeClass
{
function insideclass()
{
}
}
进入这个,在没有任何外部工具的情况下使用 Vim?
class SomeClass {
function insideclass() {
}
}
我并不是说这是格式化代码的最佳方式,但这就是我们在团队中遵循的。
编辑:删除了对代码段插件的引用,这引起了对该问题的一些混淆。
您有两个不相关的问题,并且找不到针对这两个问题的唯一解决方案。
-
您不喜欢默认的
class
代码段。没关系。如果尚不存在,请创建
~/.vim/snippets/php.snippets
并通过遵循其他答案对其进行自定义以适合团队的规则。Snipmate 不够聪明,无法适应您的编码风格。 -
某些现有代码不符合编码规则。
Snipmate 根本无济于事,因为它只处理插入,而不是转换。您将需要一些外部美化器或一些宏。
编辑
这是一个非常简单的命令,它完全符合您对示例的要求。我不保证它会适用于任何地方的一切。把它当作一个幼稚的起点。
:g/^'s*{'s*$/normal kJ
:g/pattern
作用于所有包含pattern
的行,请参见:h :global
。^'s*{'s*$
匹配所有单个{
,无论它们与行首之间的空格量如何。normal
执行normal
命令,请参阅:h :normal
。kJ
上升一行,并将这条线与匹配的线J
。做。
结束了
为什么不修改该插件的源代码?
例如,更改以下内容:
snippet class
/**
* ${1}
*/
class ${2:ClassName}
{
${3}
function ${4:__construct}(${5:argument})
{
${6:// code...}
}
}
自
snippet class
/**
* ${1}
*/
class ${2:ClassName}{
${3}
function ${4:__construct}(${5:argument}){
${6:// code...}
}
}
Snipmate 片段存储在一个目录中。转到该目录并编辑所需的文件。
direcorty 存储在 vim 目录中并称为 snippets
。在那里你会看到一个php.snippets
文件。转到该文件,在第 70 行,您可以编辑类的代码段。