priority -50 global !p def create_table(snip): # retrieving single line from current string and treat it like tabstops count placeholders_string = snip.buffer[snip.line].strip().split("x",1) rows_amount = int(placeholders_string[0]) columns_amount = int(placeholders_string[1]) # erase current line snip.buffer[snip.line] = '' # create anonymous snippet with expected content and number of tabstops anon_snippet_title = ' | '.join(['$' + str(col) for col in range(1,columns_amount+1)]) + "\n" anon_snippet_delimiter = ':-|' * (columns_amount-1) + ":-\n" anon_snippet_body = "" for row in range(1,rows_amount+1): anon_snippet_body += ' | '.join(['$' + str(row*columns_amount+col) for col in range(1,columns_amount+1)]) + "\n" anon_snippet_table = anon_snippet_title + anon_snippet_delimiter + anon_snippet_body # expand anonymous snippet snip.expand_anon(anon_snippet_table) endglobal ########################### # Sections and Paragraphs # ########################### snippet sec "Section" b # ${1:Section Name} # $0 endsnippet snippet ssec "Sub Section" b ## ${1:Section Name} ## $0 endsnippet snippet sssec "SubSub Section" b ### ${1:Section Name} ### $0 endsnippet snippet par "Paragraph" b #### ${1:Paragraph Name} #### $0 endsnippet snippet spar "Paragraph" b ##### ${1:Paragraph Name} ##### $0 endsnippet ################ # Common stuff # ################ snippet link "Link to something" [${1:${VISUAL:Text}}](${3:http://${2:www.url.com}})$0 endsnippet snippet img "Image" ![${1:pic alt}](${2:path}${3/.+/ "/}${3:opt title}${3/.+/"/})$0 endsnippet snippet ilc "Inline Code" i \`$1\`$0 endsnippet snippet cbl "Codeblock" b \`\`\` $1 \`\`\` $0 endsnippet snippet refl "Reference Link" [${1:${VISUAL:Text}}][${2:id}]$0 [$2]:${4:http://${3:www.url.com}} "${5:$4}" endsnippet snippet fnt "Footnote" [^${1:${VISUAL:Footnote}}]$0 [^$1]:${2:Text} endsnippet post_jump "create_table(snip)" snippet "tb(\d+x\d+)" "Customizable table" br `!p snip.rv = match.group(1)` endsnippet # vim:ft=snippets: