Writing in Markdown without a spellchecker is risky—especially if you write in multiple languages or have a habit of typing fast and making typos.
Here is a short, reproducible guide to setting up multilingual spell and grammar checking (English & Norwegian) in the Helix editor (hx) using mise.
Tech Stack
- Helix (
hx): Fast, modal terminal editor with built-in LSP support. - mise: Runtime and tool version manager used to manage language servers cleanly without
sudo. ltex-ls: LanguageTool-based language server providing spell and grammar checking.marksman: Markdown language server providing document symbols, links, and completion.
Files Involved
mise.toml(or~/.config/mise/config.toml): Installs and managesltex-lsandmarksman.~/.config/helix/languages.toml: Defines the language servers and attaches them to Markdown..helix/languages.toml(optional): Per-project override to switch between English and Norwegian.
Step 1: Install the Language Servers with mise
Install ltex-ls (GitHub backend) and marksman:
# Global mise setup:
mise use -g github:valentjn/ltex-ls@latest
mise use -g marksman@latest
# Or declare in your project's mise.toml:
# [tools]
# "github:valentjn/ltex-ls" = "latest"
# marksman = "latest"
Tip on PATH: Ensure
~/.local/binis in your$PATH. If needed, symlink the binaries directly:ln -s ~/.local/share/mise/installs/github-valentjn-ltex-ls/latest/bin/ltex-ls ~/.local/bin/ltex-ls ln -s ~/.local/share/mise/installs/marksman/latest/marksman ~/.local/bin/marksman
Step 2: Configure Helix (~/.config/helix/languages.toml)
Edit or create ~/.config/helix/languages.toml:
# 1. English spell checking (British English; use "en-US" for American)
[language-server.ltex-en]
command = "ltex-ls"
[language-server.ltex-en.config]
ltex.language = "en-GB"
# 2. Norwegian Bokmål spell checking
[language-server.ltex-nb]
command = "ltex-ls"
[language-server.ltex-nb.config]
ltex.language = "nb"
# 3. Attach marksman and ltex-en to Markdown
[[language]]
name = "markdown"
language-servers = ["marksman", "ltex-en"]
Step 3: Switching Between English and Norwegian
Running both ltex-en and ltex-nb simultaneously is not recommended because English text will be flagged as misspelled Norwegian and vice versa.
Instead:
- Keep ltex-en as your global default in ~/.config/helix/languages.toml.
- When working in a repository or directory that is primarily Norwegian, create a local .helix/languages.toml:
[[language]]
name = "markdown"
language-servers = ["marksman", "ltex-nb"]
Helix automatically merges project-level .helix/languages.toml with your global configuration.
Step 4: Verify the Setup
Check that Helix recognizes the language servers:
hx --health markdown
You should see green checkmarks for both servers:
Configured language servers:
✓ marksman: /home/inio/.local/bin/marksman
✓ ltex-en: /home/inio/.local/bin/ltex-ls
Summary
With mise managing the language server binaries and Helix natively handling multiple language servers per file type, you get real-time Markdown intelligence and grammar/spell checking with zero bloat and seamless switching between languages.