Modelines scheinen eine Möglichkeit zu sein, dies zu tun, aber leider funktionieren sie nicht. -Modelines nur Unterstützung Einstellmöglichkeiten ( shiftwidth
, colorcolumn
, diese Art der Sache). Sie können eine Modeline verwenden vim: spell
, um die Rechtschreibprüfung für ein Dokument zu aktivieren. Ist spellgood!
jedoch ein Ex-Befehl, keine Option. Darüber hinaus können Sie aus Sicherheitsgründen einige Optionen (einschließlich , siehe ) von Modelines nicht festlegen .spellfile
:help spellfile
Sie könnten eine Reihe von dateispezifischen Autobefehlen in Ihrem vimrc erstellen, aber das würde im Laufe der Zeit sehr schwer zu pflegen sein, mühsam, wenn Sie jemals zwei Dateien mit demselben Namen an verschiedenen Orten haben und nicht mit dem reisen würden Datei."
Stattdessen besteht die beste Lösung wahrscheinlich darin, eine eigene modellartige Funktion zum Hinzufügen von Wörtern zu erstellen, indem Sie einen definierten Textblock im Dokument analysieren. Sie können beispielsweise nach Zeilen suchen, die mit beginnen, "spellgood:"
und den durch Leerzeichen getrennten Satz von Wörtern automatisch zur internen Wortliste hinzufügen:
function! AddLocalSpelling ()
" Save the cursor position.
let cursor_position = getcurpos()
let location = searchpos("\"spellgood:", "c")
while location != [0, 0]
let words = split(getline(location[0]))
" The first 'word' will be the sentinel token itself (unless)
" we found the token in an embedded string or comment...
if words[0] == "\"spellgood:"
call remove(words, 0)
for word in words
execute "silent spellgood! " . word
endfor
endif
let location = searchpos("\"spellgood:", "W")
endwhile
" Restore cursor position.
call setpos(".", cursor_position)
endfunction
Dann können Sie einen Autobefehl für beispielsweise BufReadPost * call AddLocalSpelling()
in Ihrem einrichten .vimrc
. In der Praxis möchten Sie wahrscheinlich die oben genannte Funktion angesichts von Fehlern robuster machen und möglicherweise verwenden, um comments
zu sehen, was ein gültiges Kommentartoken ist (ich habe es ausgewählt, "
weil ich es in einem VimL-Puffer getestet habe). Diese von JJoao in den Kommentaren verknüpfte SuperUser-Antwort bietet eine ähnliche, aber alternative Implementierung, mit der Sie Wortblöcke anstelle von jeweils nur einer Zeile verwenden können.
Diese Methode erfordert, dass andere dieselbe Funktion verwenden oder sich zumindest auf dieselben Analyseregeln einigen, sodass sie nicht perfekt ist. Sie können es aber auch verwenden und die Funktionalität auf Wunsch in ein Plugin umwandeln, um anderen Benutzern einen einfacheren Zugriff zu ermöglichen.
modeline
?