Edit : Ich habe daraus ein kleines Plugin gemacht. Dies ist mein erster Versuch, einen zu schreiben, und ich habe keine Ahnung, was ich tue. Daher wird jede Hilfe sehr geschätzt. :) :)
Hier ist es: https://github.com/danielbmarques/vim-dialect
----------
Ich möchte weiterhin verwenden zgund zwWörter zu den globalen vim hinzuzufügen spellfiles, aber ich möchte verwenden zGund zWWörter hinzuzufügen spellfile spezifisch auf die Datei , die ich bin der Bearbeitung . Mit anderen Worten, ich möchte zGund zWmuss für jede Datei persistent sein.
Festlegen der spellfileÄnderungen der Befehle zgund zw, während ich nur die Befehle zGund ändern möchte zW.
Also habe ich das einfach gemacht:
:au BufNewFile,BufRead * let &l:spellfile = expand('%:p:h') . '/.' .
\ substitute(expand('%:t'), '\(.*\)\..*', '\1', '') . '.utf-8.add'
nnoremap zG :call LocalSpell("zG")<cr>
nnoremap zW :call LocalSpell("zW")<cr>
nnoremap zuG :call LocalSpell("zuG")<cr>
nnoremap zuW :call LocalSpell("zuW")<cr>
nnoremap zg :call GlobalSpell("zg")<cr>
nnoremap zw :call GlobalSpell("zw")<cr>
nnoremap zug :call GlobalSpell("zug")<cr>
nnoremap zuw :call GlobalSpell("zuw")<cr>
vnoremap zG :call LocalSpell("gvzG")<cr>
vnoremap zW :call LocalSpell("gvzW")<cr>
vnoremap zuG :call LocalSpell("gvzuG")<cr>
vnoremap zuW :call LocalSpell("gvzuW")<cr>
vnoremap zg :call GlobalSpell("gvzg")<cr>
vnoremap zw :call GlobalSpell("gvzw")<cr>
vnoremap zug :call GlobalSpell("gvzug")<cr>
vnoremap zuw :call GlobalSpell("gvzuw")<cr>
function! LocalSpell(cmd)
if &l:spellfile == ""
execute "normal! " . a:cmd
else
execute "normal! " . tolower(a:cmd)
endif
endfunction
function! GlobalSpell(cmd)
let b:spellfile = &l:spellfile
setlocal spellfile=
execute "normal! " . a:cmd
let &l:spellfile = b:spellfile
endfunction
Und es funktioniert ... aber es sieht für mich nicht nach einer guten Lösung aus (edit: es wird schon besser :)). Also dachte ich, ich würde es hier posten, falls jemand bessere Ideen oder Verbesserungen vorschlägt. Was denken Sie?
spellfilewird nur erstellt, wenn der erste zGtrotzdem ausgeführt wird.
a spellfile specific to the file I'm editingdachte ich, Sie verwenden mehrere Zauberdateien für zG; Da der Rechtschreibdateiname vom Dateinamen ( let &l:spellfile = expand('%:p:h')...) abgeleitet ist, können Sie dies für einen bestimmten Dateityp erreichen, indem Sie den Dateinamen und die Zuordnungen beim Öffnen dieser Datei definieren (Sie müssten <buffer>sie den Zuordnungen hinzufügen). Ich ging auch davon aus, dass Sie diese Änderung zGnur für bestimmte Dateien wünschen.
spellfilefür bestimmte Dateitypen , sondern einen spellfilefür jede Datei . Ich kann also Wörter hinzufügen, und wenn ich diese Datei erneut öffne, werden sie weiterhin hinzugefügt, jedoch nur für diese bestimmte Datei und nicht für andere. Das ist aber auch eine interessante Idee. Leider scheint es nicht möglich zu sein, mehr als eine Zauberdatei zu beschaffen, andernfalls könnte ich beides tun und einen Befehl zum Hinzufügen von Wörtern für die aktuelle Datei und einen anderen zum Hinzufügen von Wörtern für den aktuellen Dateityp haben.
one spellfile for each file. Vielleicht habe ich etwas verpasst, aber wenn Sie den Code zu Ihrem hinzugefügt .vimrchaben, konnten Sie nicht mehr als eine Zauberdatei haben, es sei denn, Sie haben es ausdrücklich noch :sourceeinmal wiederholt, um die neu zu bewerten %.