aboutsummaryrefslogtreecommitdiff
path: root/vim/plugin/spellfile_local.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/plugin/spellfile_local.vim')
-rw-r--r--vim/plugin/spellfile_local.vim26
1 files changed, 26 insertions, 0 deletions
diff --git a/vim/plugin/spellfile_local.vim b/vim/plugin/spellfile_local.vim
new file mode 100644
index 00000000..583df986
--- /dev/null
+++ b/vim/plugin/spellfile_local.vim
@@ -0,0 +1,26 @@
+if exists('loaded_spellfile_local')
+ finish
+endif
+let loaded_spellfile_local = 1
+
+EnsureDir $MYVIM/cache/spell
+
+let spellfile = join([
+ \ substitute(v:lang, '_.*', '', ''),
+ \ &encoding
+ \ ], '.') . '.add'
+execute 'set spellfile=$MYVIM/cache/spell/'.spellfile
+
+EnsureDir $MYVIM/cache/spell/local
+
+function! AddLocalSpellfile() abort
+ let spellfile = join([
+ \ substitute(expand('%:p'), '[^0-9A-Za-z_.-]', '%', 'g'),
+ \ substitute(v:lang, '_.*', '', ''),
+ \ &encoding
+ \ ], '.') . '.add'
+ setlocal spellfile<
+ execute 'setlocal spellfile+=$MYVIM/cache/spell/local/'.spellfile
+endfunction!
+autocmd vimrc BufRead *
+ \ call AddLocalSpellfile() | nnoremap <buffer> zG 2zg