2 Commity 6db6397867 ... 31db525045

Autor SHA1 Wiadomość Data
  Daniel Sheffield 31db525045 adjust abbreviation for Amos so it doesn't conflict with commonly used word 1 miesiąc temu
  Daniel Sheffield 3829236b0a make versification abbreviations a plugin so they only load when needed 1 miesiąc temu
2 zmienionych plików z 135 dodań i 79 usunięć
  1. 135 0
      vim/vimfiles/plugin/versification.vim
  2. 0 79
      vim/vimfiles/vimrc

+ 135 - 0
vim/vimfiles/plugin/versification.vim

@@ -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
+

+ 0 - 79
vim/vimfiles/vimrc

@@ -486,82 +486,3 @@ silent! call feedkeys(":nohlsearch\<CR>")
 
 set belloff=all
 
-augroup bible
-  autocmd!
-  autocmd FileType markdown {
-    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> am 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
-}
-augroup END