2014-12-02 61 views
3

有没有什么方法可以告诉vim更新'spelllang'中列出的所有语言的拼写文件,以便从vim外部获取单词表更改?有没有一种快速的方法来重建拼音文件名单?

我已经开始检查wordit文件到git中,因为我厌倦了在多台计算机上添加相同的单词。我不想将拼写文件添加到git repo,因为每次合并都会变得很难看,但是每当我打开vim时,任何近期更新都会被忽略,直到我从vim内部重建拼写文件(例如zg)在词典中添加一个词。

回答

0

使用字典的git仓库很有意义。问题是通知vim您的字典。一个简单的解决方案是将vim映射为使用正确的字典。举例来说,如果你的话是在my-dictionary.txt,那么你可以从VIM运行:

:mkspell ~/.vim/spell/en_my_dict /path/to/git/repo/my-dictionary.txt 

我可能会使用类似:

" Set up Dictionary for check 
" This is will add your dictionary to existing list. 
" To use only your dictionary use, setlocal &spelllang=en_my_dict 
nmap <leader>ss :setlocal &spelllang=join(add(split(&spelllang, ','), 'en_my_dict'), ',') 

" Spell Check (Redo to disable) 
nmap <silent> <leader>sc :set spell!<CR> 
+0

我已经建立了我想要的方式拼写文件(它在我的vimrc配置为使用对应于spelllang 〜/ .vim/spell /中的单词表,符号链接到git工作目录中的文件)。问题在于,只要该文件从vim外部更改,vim就会继续使用stale .spl文件而不是新的wordlist。 – 2014-12-03 01:39:47

1

您可以创建git的污迹/清洁过滤器和结账后钩致电:mkspell

$ mkdir -p ~/.vim/spell 
$ cd ~/.vim/spell 
$ git init 
$ echo '*.spl' > .gitignore 
$ touch words.utf-8.add 
$ git add . && git commit -m 'init' 
$ echo '*.add filter=spellfile' > .git/info/attributes 
$ git config filter.spellfile.smudge cat 
$ git config filter.spellfile.clean 'sort -u' 
$ cd .git/hooks/ 
$ vim mkspell 
#!/bin/sh 
SPELL_FILE="`git rev-parse --show-toplevel`/words.utf-8.add" \ 
    vim -i NONE -u NORC -U NONE -V1 -nNesc ' 
     execute ":mkspell! " . fnameescape($SPELL_FILE) | echo "" | qall! 
     ' 
$ chmod +x ./mkspell 
$ ln -s ./mkspell post-checkout 

然后加入spellfile设置成你的~/.vimrc

set spellfile=~/.vim/spell/words.utf-8.add 
6

我已通过添加* .spl文件到的.gitignore文件,然后在vimrc的解决了这个(也与GIT同步,请加:

for d in glob('~/.vim/spell/*.add', 1, 1) 
    if filereadable(d) && (!filereadable(d . '.spl') || getftime(d) > getftime(d . '.spl')) 
     exec 'mkspell! ' . fnameescape(d) 
    endif 
endfor 

来源:https://vi.stackexchange.com/questions/5050/how-to-share-vim-spellchecking-additions-between-multiple-machines

这将导致VIM每个Vim启动时。新增文件已被更新时间重建.spl文件。

0

如果你只有一个单一的拼写文件,只是把这个在您的.vimrc

exec 'silent mkspell! ' . &spellfile . '.spl' 
相关问题