如何设置看起来像这样的PHP代码
class SomeClass
{
function insideclass()
{
}
}
进入这个,使用Vim而不使用任何外部工具?
class SomeClass {
function insideclass() {
}
}
我并不认为这是格式化代码的最佳方式,但这是我们在团队中遵循的内容。
修改:删除了对代码段插件的引用,这引起了对该问题的一些疑惑。
答案 0 :(得分:4)
你有两个不相关的问题,你找不到两者的独特解决方案。
您不喜欢默认的class
代码段。
没问题。如果它尚未存在,请创建~/.vim/snippets/php.snippets
并根据其他答案对其进行自定义以符合您团队的规则。 Snipmate不够聪明,无法适应你的编码风格。
您的部分现有代码不符合您的编码规则。
Snipmate完全没有帮助,因为它只处理插入,而不是转换。您将需要一些外部beautifier或一些宏。
修改强> 的
这是一个非常简单的命令,可以完全按照您的示例执行。我不能保证它能适用于所有地方。把它作为一个天真的起点。
:g/^\s*{\s*$/normal kJ
:g/pattern
会对包含pattern
的所有行行事,请参阅:h :global
。
^\s*{\s*$
匹配所有单{
,无论它们与行首之间的空白量是多少。
normal
执行normal
个命令,请参阅:h :normal
。
kJ
上升一行,J
此行与匹配的行一起上线。
完成。
的 EndEdit中强>
答案 1 :(得分:2)
为什么不修改该插件的源代码?
例如,更改这些:
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...}
}
}
答案 2 :(得分:0)
Al snipmate片段存储在目录中。转到该目录并编辑所需的文件。
direcorty存储在vim目录中并被称为snippets
。在那里你看到一个php.snippets
文件。转到该文件,在第70行,您可以编辑该类的片段。