snippet     if
abbr        if endif
options     head
    if ${1:#:condition}
        ${0:TARGET}
    endif

snippet     elseif
options     head
    elseif ${1:#:condition}
        ${0:TARGET}

snippet     ifelse
abbr        if else endif
options     head
    if ${1:#:condition}
        ${2:TARGET}
    else
        ${3}
    endif

snippet     for
abbr        for in endfor
options     head
    for ${1:#:var} in ${2:#:list}
        ${0:TARGET}
    endfor

snippet     while
abbr        while endwhile
options     head
    while ${1:#:condition}
        ${0:TARGET}
    endwhile

snippet     function
abbr        func endfunc
alias       func
options     head
    function! ${1:#:func_name}(${2})
        ${0:TARGET}
    endfunction

snippet     try
abbr        try endtry
options     head
    try
        ${1:TARGET}
    catch /${2:#:pattern}/
        ${3}
    endtry

snippet     tryfinally
abbr        try ... finally ... endtry
alias       tryf
options     head
    try
        ${1:TARGET}
    finally
        ${2}
    endtry

snippet     catch
options     head
    catch ${1:/${2:#:pattern: empty, E484, Vim(cmdname):{errmsg\\}\}/}

snippet     echomsg
alias       log
options     head
    echomsg string(${1:TARGET})

snippet     command
abbr        command call function
options     head
    command! ${1:#:command_name} call ${2:#:func_name}

snippet     customlist
abbr        customlist complete function
options     head
    function! ${1:#:func_name}(arglead, cmdline, cursorpos)
        return filter(${2:#:list}, 'stridx(v:val, a:arglead) == 0')
    endfunction

snippet     augroup
abbr        augroup with autocmds
options     head
    augroup ${1:#:augroup_name}
        autocmd!
        autocmd ${2:#:event}
    augroup END

snippet     redir
abbr        redir => var
options     head
	redir => ${1:#:var}
		${2::TARGET}
	redir END

snippet NeoBundle
alias   neobundle
abbr NeoBundle ''
    NeoBundle '`getreg('+')=='' ? '<\`0\`>' : getreg('+')`'${0}

snippet NeoBundleLazy
alias   neobundlelazy
abbr NeoBundleLazy ''
    NeoBundleLazy '`getreg('+')=='' ? '<\`0\`>' : getreg('+')`', { 'autoload' : {
      \ ${0}
      \ }}