Spellchecking in Neovim
28 Jan 2025Ich versuche gerade mehr zu schreiben. Mir fiel das schon in der Uni schwer und jetzt habe ich wenig Gelegenheit zum Üben. Damit ich wenig Ausreden habe und einfach überall Schreiben kann möchte ich Neovim als meinen Editor benutzen.
Vim per Default auch schon ein sehr guter Editor um Prosa zu schreiben, aber Rechtschreibung und Grammatik war noch nie meine Stärke.
Aber natürlch gibt es ein Spellchecker-Plugin für Neovim. Of course …
ltex language server
Wir benutzen als LSP ltex
(ich verwalte alle LSPs mit mason.nvim). Das funktioniert auch out-of-the-box.
Allerdings schreibe ich diesen Blog ja in Deutsch, aber die meisten anderen markdown Texte in Englisch.
Damit ich zwischen den Sprachen wechseln kann habe ich mir zwei keymappings gebaut:
lspconfig.ltex.setup {
settings = {
ltex = {
language = "en-US"
}
},
on_attach = function ()
vim.keymap.set("n", "<leader>mse", function ()
vim.opt.spelllang = "en"
local ltexSettings = vim.lsp.get_active_clients({ name = "ltex" })[1].config.settings
ltexSettings.ltex.language = "en-US"
vim.lsp.buf_notify(0, "workspace/didChangeConfiguration", { settings = ltexSettings })
end)
vim.keymap.set("n", "<leader>msd", function ()
vim.opt.spelllang = "de"
local ltexSettings = vim.lsp.get_active_clients({ name = "ltex" })[1].config.settings
ltexSettings.ltex.language = "de-DE"
vim.lsp.buf_notify(0, "workspace/didChangeConfiguration", { settings = ltexSettings })
end)
end
}
Jetzt kann ich mittels <leader>msd
das Spellchecking auf Deutsch umstellen und mit <leader>mse
zurück auf Deutsch.
Wenn die Markdown Dokumente ein YAML Frontmatter haben, kann man LanguageTool auch sagen welche Sprache das Dokument hat. Das geht ganz einfach mit
---
layout: post
title: "Spellchecking in Neovim"
date: 2025-01-28 13:33:43 +0100
lang: de-DE
---