|
|
@@ -0,0 +1,135 @@
|
|
|
+if exists('g:versification') && g:versification
|
|
|
+ finish
|
|
|
+endif
|
|
|
+let g:versification=1
|
|
|
+
|
|
|
+augroup Versification
|
|
|
+ autocmd!
|
|
|
+ autocmd BufRead,BufNewFile *.md call VersificationDetect()
|
|
|
+ autocmd BufRead,BufNewFile *.md call SetupVersification()
|
|
|
+augroup END
|
|
|
+
|
|
|
+function! SetupVersification()
|
|
|
+ if exists('b:versification') && !empty(b:versification)
|
|
|
+ call VersificationAbbreviations('on')
|
|
|
+ else
|
|
|
+ call VersificationAbbreviations('off')
|
|
|
+ endif
|
|
|
+endfunction
|
|
|
+
|
|
|
+function! VersificationDetect()
|
|
|
+ if exists('b:versification')
|
|
|
+ unlet b:versification
|
|
|
+ endif
|
|
|
+ let lines = getline(1, &modelines)
|
|
|
+
|
|
|
+ for line in lines
|
|
|
+ if line =~ 'versification:'
|
|
|
+ let parts = split(line, ':')
|
|
|
+ let trimmed_parts = map(parts, 'v:val->trim()')
|
|
|
+ let b:versification = get(trimmed_parts, 1, '')
|
|
|
+ return
|
|
|
+ endif
|
|
|
+ endfor
|
|
|
+endfunction
|
|
|
+
|
|
|
+let g:bible_abbrevs = [
|
|
|
+\ 'gen', 'ex', 'lev', 'num', 'de',
|
|
|
+\ 'jsh', 'jdg', 'rut', '1sa', '2sa', '1kn', '2kn', '1ch', '2ch',
|
|
|
+\ 'ezr', 'neh', 'est',
|
|
|
+\ 'job', 'ps', 'pr', 'ecc', 'song',
|
|
|
+\ 'isa', 'jer', 'lam', 'eze', 'dan',
|
|
|
+\ 'hos', 'joe', 'amo', 'ob', 'jon', 'mic', 'nah', 'hab', 'zep', 'hag', 'zech', 'mal',
|
|
|
+\ 'mt', 'mk', 'lk', 'jn',
|
|
|
+\ 'act',
|
|
|
+\ 'rom', '1co', '2co', 'gal', 'eph', 'php', 'col', '1th', '2th', '1ti', '2ti', 'tit', 'phm', 'heb',
|
|
|
+\ 'jm',
|
|
|
+\ '1pt', '2pt',
|
|
|
+\ '1jn', '2jn', '3jn',
|
|
|
+\ 'jud',
|
|
|
+\ 'rev'
|
|
|
+\]
|
|
|
+
|
|
|
+function! VersificationAbbreviations(state)
|
|
|
+ if a:state == 'on'
|
|
|
+ iabbrev <buffer> gen Genesis
|
|
|
+ iabbrev <buffer> ex Exodus
|
|
|
+ iabbrev <buffer> lev Leviticus
|
|
|
+ iabbrev <buffer> num Numbers
|
|
|
+ iabbrev <buffer> de Deuteronomy
|
|
|
+
|
|
|
+ iabbrev <buffer> jsh Joshua
|
|
|
+ iabbrev <buffer> jdg Judges
|
|
|
+ iabbrev <buffer> rut Ruth
|
|
|
+ iabbrev <buffer> 1sa 1 Samuel
|
|
|
+ iabbrev <buffer> 2sa 2 Samuel
|
|
|
+ iabbrev <buffer> 1kn 1 Kings
|
|
|
+ iabbrev <buffer> 2kn 2 Kings
|
|
|
+ iabbrev <buffer> 1ch 1 Chronicles
|
|
|
+ iabbrev <buffer> 2ch 2 Chronicles
|
|
|
+ iabbrev <buffer> ezr Ezra
|
|
|
+ iabbrev <buffer> neh Nehemiah
|
|
|
+ iabbrev <buffer> est Esther
|
|
|
+
|
|
|
+ iabbrev <buffer> job Job
|
|
|
+ iabbrev <buffer> ps Psalm
|
|
|
+ iabbrev <buffer> pr Proverbs
|
|
|
+ iabbrev <buffer> ecc Ecclesiastes
|
|
|
+ iabbrev <buffer> song Song of Solomon
|
|
|
+ iabbrev <buffer> isa Isaiah
|
|
|
+ iabbrev <buffer> jer Jeremiah
|
|
|
+ iabbrev <buffer> lam Lamentations
|
|
|
+ iabbrev <buffer> eze Ezekiel
|
|
|
+ iabbrev <buffer> dan Daniel
|
|
|
+ iabbrev <buffer> hos Hosea
|
|
|
+ iabbrev <buffer> joe Joel
|
|
|
+ iabbrev <buffer> amo Amos
|
|
|
+ iabbrev <buffer> ob Obadiah
|
|
|
+ iabbrev <buffer> jon Jonah
|
|
|
+ iabbrev <buffer> mic Micah
|
|
|
+ iabbrev <buffer> nah Nahum
|
|
|
+ iabbrev <buffer> hab Habakkuk
|
|
|
+ iabbrev <buffer> zep Zephaniah
|
|
|
+ iabbrev <buffer> hag Haggai
|
|
|
+ iabbrev <buffer> zech Zechariah
|
|
|
+ iabbrev <buffer> mal Malachi
|
|
|
+
|
|
|
+ iabbrev <buffer> mt Matthew
|
|
|
+ iabbrev <buffer> mk Mark
|
|
|
+ iabbrev <buffer> lk Luke
|
|
|
+ iabbrev <buffer> jn John
|
|
|
+
|
|
|
+ iabbrev <buffer> act Acts
|
|
|
+
|
|
|
+ iabbrev <buffer> rom Romans
|
|
|
+ iabbrev <buffer> 1co 1 Corinthians
|
|
|
+ iabbrev <buffer> 2co 2 Corinthians
|
|
|
+
|
|
|
+ iabbrev <buffer> gal Galatians
|
|
|
+ iabbrev <buffer> eph Ephesians
|
|
|
+ iabbrev <buffer> php Philippians
|
|
|
+ iabbrev <buffer> col Colossians
|
|
|
+ iabbrev <buffer> 1th 1 Thessalonians
|
|
|
+ iabbrev <buffer> 2th 2 Thessalonians
|
|
|
+ iabbrev <buffer> 1ti 1 Timothy
|
|
|
+ iabbrev <buffer> 2ti 2 Timothy
|
|
|
+ iabbrev <buffer> tit Titus
|
|
|
+ iabbrev <buffer> phm Philemon
|
|
|
+
|
|
|
+ iabbrev <buffer> heb Hebrews
|
|
|
+ iabbrev <buffer> jm James
|
|
|
+ iabbrev <buffer> 1pt 1 Peter
|
|
|
+ iabbrev <buffer> 2pt 2 Peter
|
|
|
+ iabbrev <buffer> 1jn 1 John
|
|
|
+ iabbrev <buffer> 2jn 2 John
|
|
|
+ iabbrev <buffer> 3jn 3 John
|
|
|
+ iabbrev <buffer> jud Jude
|
|
|
+
|
|
|
+ iabbrev <buffer> rev Revelation
|
|
|
+ else
|
|
|
+ for abbr in g:bible_abbrevs
|
|
|
+ silent! exec 'iunabbrev <buffer> ' . abbr
|
|
|
+ endfor
|
|
|
+ endif
|
|
|
+endfunction
|
|
|
+
|