mirror of
https://github.com/amix/vimrc
synced 2024-12-27 04:13:08 +00:00
113 lines
3.4 KiB
Text
113 lines
3.4 KiB
Text
# This file contains snippets that are always defined. I personally
|
|
# have snippets for signatures and often needed texts
|
|
|
|
# sligthly lower priority than everything else since specialized versions
|
|
# should overwrite. The user needs to adjust her priority in her snippets to
|
|
# ~-55 so that other filetypes will still overwrite.
|
|
priority -60
|
|
|
|
##############
|
|
# NICE BOXES #
|
|
##############
|
|
global !p
|
|
from vimsnippets import foldmarker, make_box, get_comment_format
|
|
LOREM = """
|
|
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod \
|
|
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At \
|
|
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, \
|
|
no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
|
"""
|
|
endglobal
|
|
|
|
snippet box "A nice box with the current comment symbol" b
|
|
`!p
|
|
box = make_box(len(t[1]))
|
|
snip.rv = box[0]
|
|
snip += box[1]
|
|
`${1:${VISUAL:content}}`!p
|
|
box = make_box(len(t[1]))
|
|
snip.rv = box[2]
|
|
snip += box[3]`
|
|
$0
|
|
endsnippet
|
|
|
|
snippet bbox "A nice box over the full width" b
|
|
`!p
|
|
if not snip.c:
|
|
width = int(vim.eval("&textwidth - (virtcol('.') == 1 ? 0 : virtcol('.'))")) or 71
|
|
box = make_box(len(t[1]), width)
|
|
snip.rv = box[0]
|
|
snip += box[1]
|
|
`${1:${VISUAL:content}}`!p
|
|
box = make_box(len(t[1]), width)
|
|
snip.rv = box[2]
|
|
snip += box[3]`
|
|
$0
|
|
endsnippet
|
|
|
|
snippet fold "Insert a vim fold marker" b
|
|
`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]`${2:1} `!p snip.rv = get_comment_format()[2]`
|
|
endsnippet
|
|
|
|
snippet foldc "Insert a vim fold close marker" b
|
|
`!p snip.rv = get_comment_format()[0]` ${2:1}`!p snip.rv = foldmarker()[1]` `!p snip.rv = get_comment_format()[2]`
|
|
endsnippet
|
|
|
|
snippet foldp "Insert a vim fold marker pair" b
|
|
`!p snip.rv = get_comment_format()[0]` ${1:Fold description} `!p snip.rv = foldmarker()[0]` `!p snip.rv = get_comment_format()[2]`
|
|
${2:${VISUAL:Content}}
|
|
`!p snip.rv = get_comment_format()[0]` `!p snip.rv = foldmarker()[1]` $1 `!p snip.rv = get_comment_format()[2]`
|
|
endsnippet
|
|
|
|
##########################
|
|
# LOREM IPSUM GENERATORS #
|
|
##########################
|
|
snippet "lorem(([1-4])?[0-9])?" "Lorem Ipsum" r
|
|
`!p snip.rv = " ".join(LOREM.split()[:int(match.group(1))]) if match.group(1) else LOREM`
|
|
endsnippet
|
|
|
|
##########################
|
|
# VIM MODELINE GENERATOR #
|
|
##########################
|
|
# See advice on `:help 'tabstop'` for why these values are set. Uses second
|
|
# modeline form ('set') to work in languages with comment terminators
|
|
# (/* like C */).
|
|
snippet modeline "Vim modeline"
|
|
vim`!v ':set '. (&expandtab ? printf('et sw=%i ts=%i', &sw, &ts) : printf('noet sts=%i sw=%i ts=%i', &sts, &sw, &ts)) . (&tw ? ' tw='. &tw : '') . ':'`
|
|
endsnippet
|
|
|
|
#########
|
|
# DATES #
|
|
#########
|
|
snippet date "YYYY-MM-DD" w
|
|
`!v strftime("%Y-%m-%d")`
|
|
endsnippet
|
|
|
|
snippet ddate "Month DD, YYYY" w
|
|
`!v strftime("%b %d, %Y")`
|
|
endsnippet
|
|
|
|
snippet diso "ISO format datetime" w
|
|
`!v strftime("%Y-%m-%d %H:%M:%S%z")`
|
|
endsnippet
|
|
|
|
snippet time "hh:mm" w
|
|
`!v strftime("%H:%M")`
|
|
endsnippet
|
|
|
|
snippet datetime "YYYY-MM-DD hh:mm" w
|
|
`!v strftime("%Y-%m-%d %H:%M")`
|
|
endsnippet
|
|
|
|
snippet todo "TODO comment" bw
|
|
`!p snip.rv=get_comment_format()[0]` ${2:TODO}: $0${3: <${4:`!v strftime('%d-%m-%y')`}${5:, `!v g:snips_author`}>} `!p snip.rv=get_comment_format()[2]`
|
|
endsnippet
|
|
|
|
##########
|
|
# Misc #
|
|
##########
|
|
snippet uuid "Random UUID" w
|
|
`!p if not snip.c: import uuid; snip.rv = str(uuid.uuid4())`
|
|
endsnippet
|
|
|
|
# vim:ft=snippets:
|