vim-snippets/UltiSnips/help.snippets
pydave 2f20b96a50 Add vim modeline snippets
Add an 'all' and a 'help' snippet for vim modelines.

The 'all' snippet implements the advice in tabstop's docs about setting
softtabstop when using noexpandtab what other variables (expandtab,
shiftwidth, and tabstop) to set. It sets these variables to their
current values.

Vim supports two forms of modelines, but only the second (that includes
the 'set') works in languages with comment terminators (/* like C */).

The 'help' snippet uses exactly what vim help files use (including the
leading space -- I expect users will insert the modeline at the start of
a line).

Does some unnecessary interpolation ('set' and 'vim') to prevent vim
from interpreting the snippet definition as a modeline for the snippets
file.
2014-08-01 09:31:13 -07:00

38 lines
828 B
Plaintext

# Snippets for VIM Help Files
priority -50
global !p
def sec_title(snip, t):
file_start = snip.fn.split('.')[0]
sec_name = t[1].strip("1234567890. ").lower().replace(' ', '-')
return ("*%s-%s*" % (file_start, sec_name)).rjust(78-len(t[1]))
endglobal
snippet sec "Section marker" b
==============================================================================
${1:SECTION}`!p snip.rv = sec_title(snip, t)`
$0
endsnippet
snippet ssec "Sub section marker" b
${1:Subsection}`!p snip.rv = sec_title(snip, t)
snip += "-"*len(t[1])`
$0
endsnippet
snippet sssec "Subsub Section marker" b
${1:SubSubsection}:`!p snip.rv = sec_title(snip, t)`
$0
endsnippet
# For vim help, follow the same settings as the official docs.
snippet modeline "Vim help modeline"
`!v 'vim'`:tw=78:ts=8:ft=help:norl:
endsnippet
# vim:ft=snippets: