Vim的snipMate插件 php代码自动补全
原创
©著作权归作者所有:来自51CTO博客作者dcj3sjt126com的原创作品,请联系作者获取转载授权,否则将追究法律责任
Vim的snipMate插件
介绍
终于发现了一个插件,对于Vim下代码块的自动补全支持的很好。给大家推荐snipMate。
snipMate可以帮助您在vim上实现类似Textmate的功能,自动代码块的能力非常强大,而且代码块是可定制的。我们只需编辑~/.vim/snippets/目录下的*.snippets文件就可以根据自己的要求自动产生代码。
使用
完成之后,新建一个测试文件snipMateTest.php准备测试
vim snipMateTest.php
然后按照下面的方式开始测试snipMate:
输入for,再按tab键
输入foreach,再按tab键
输入class,再按tab键
输入fun,再按tab键
效果如图
snipMate插件php自动补全配置文件:
snippet php
<?php
1}
snippet ec
"${1:string}"${2};
snippet inc
'${1:file}';${2}
snippet inc1
'${1:file}';${2}
snippet req
'${1:file}';${2}
snippet req1
'${1:file}';${2}
# $GLOBALS['...']
snippet globals
'${1:variable}']${2: = }${3:something}${4:;}${5}
snippet $_ COOKIE['...']
'${1:variable}']${2}
snippet $_ ENV['...']
'${1:variable}']${2}
snippet $_ FILES['...']
'${1:variable}']${2}
snippet $_ Get['...']
'${1:variable}']${2}
snippet $_ POST['...']
'${1:variable}']${2}
snippet $_ REQUEST['...']
'${1:variable}']${2}
snippet $_ SERVER['...']
'${1:variable}']${2}
snippet $_ SESSION['...']
'${1:variable}']${2}
# Start Docblock
snippet /*
/**
* ${1}
**/
# Class - post doc
snippet doc_cp
/**
* ${1:undocumented class}
*
* @package ${2:default}
* @author ${3:`g:snips_author`}
**/${4}
# Class Variable - post doc
snippet doc_vp
/**
* ${1:undocumented class variable}
*
* @var ${2:string}
**/${3}
# Class Variable
snippet doc_v
/**
* ${3:undocumented class variable}
*
* @var ${4:string}
**/
1:var} $${2};${5}
# Class
snippet doc_c
/**
* ${3:undocumented class}
*
* @packaged ${4:default}
* @author ${5:`g:snips_author`}
**/
1:}class ${2:}
6}
// END $1class $2
# Constant Definition - post doc
snippet doc_dp
/**
* ${1:undocumented constant}
**/${2}
# Constant Definition
snippet doc_d
/**
* ${3:undocumented constant}
**/
1}, ${2});${4}
# Function - post doc
snippet doc_fp
/**
* ${1:undocumented function}
*
* @return ${2:void}
* @author ${3:`g:snips_author`}
**/${4}
# Function signature
snippet doc_s
/**
* ${4:undocumented function}
*
* @return ${5:void}
* @author ${6:`g:snips_author`}
**/
1}function ${2}(${3});${7}
# Function
snippet doc_f
/**
* ${4:undocumented function}
*
* @return ${5:void}
* @author ${6:`g:snips_author`}
**/
1}function ${2}(${3})
7}
}
# Header
snippet doc_h
/**
* ${1}
*
* @author ${2:`g:snips_author`}
* @version ${3:$Id$}
* @copyright ${4:$2}, `strftime('%d %B, %Y')`
* @package ${5:default}
**/
/**
* Define DocBlock
*//
# Interface
snippet doc_i
/**
* ${2:undocumented class}
*
* @package ${3:default}
* @author ${4:`g:snips_author`}
**/
interface ${1:}
5}
// END interface $1
# class
snippet class
/**
* ${1}
**/
class ${2:ClassName}
{
3}
4:__construct}(${5:argument})
{
6:// code...}
}
}
# define(...)
snippet def
'${1}'${2});${3}
# defined(...)
snippet def?
1}defined('${2}')${3}
snippet wh
while (${1:/* condition */}) {
2:// code...}
}
# do ... while
snippet do
do
2:// code... }
while (${1:/* condition */});
snippet if
if (${1:/* condition */}) {
2:// code...}
}
snippet ife
if (${1:/* condition */}) {
2:// code...}
else
3:// code...}
}
4}
snippet else
else
1:// code...}
}
snippet elseif
1:/* condition */}) {
2:// code...}
}
# Tertiary conditional
snippet t
1:retVal} = (${2:condition}) ? ${3:a} : ${4:b};${5}
snippet switch
switch ($${1:variable}) {
case '${2:value}':
3:// code...}
break;
5}
default:
4:// code...}
break;
}
snippet case
case '${1:value}':
2:// code...}
break;${3}
snippet for
for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {
4: // code...}
}
snippet foreach
1:variable} as $${2:key}) {
3:// code...}
}
snippet fun
1:public }function ${2:FunctionName}(${3})
{
4:// code...}
}
# $... = array (...)
snippet array
1:arrayName} = array('${2}' => ${3});${4}