Ombyggnad 2026/2027 pågår - döda länkar förekommer. Mer information

Programmera Python med Helix

2023-12-23 på Anders Ytterströms webblogg

Sedan en tid tillbaka så försöker jag aktivt att ersätta appar baserade på Electron med andra alternativ.

För att ersätta VSCode har jag länge sneglat åt en vim-liknande editor som heter Helix, och efter ungefär sex månaders användning börjar jag få upp farten och närmar mig ett läge där jag kan ersätta VSCode och PyCharm.

Mitt startläge var följande:

Varför Helix istället för Neovim?

Helix är designat för att likna Vim, med kolon för att hoppa mellan lägena normal, inmatning och selektion. Helix, precis som Vim, startar blixtsnabbt och har i stort sett obefintligt footprint i CPU- och RAM-användning. Stora filer är inga problem, precis som i Vim.

Helix har däremot några fördelar mot Neovim som tilltalade mig skarpt.

Language servers tror jag är framtiden, och den modulära tillämpningen Helix har känns helt rätt.

Dessa två saker är förmodligen möjliga att få till i NeoVim med plugins, men de gånger jag försökt har det alltid slutat med att jag gett upp. Jag vill nämligen fokusera på att skriva, inte att konfigurera min editor.

Min setup för Python

Min setup har följande acceptanskriterier:

Så här ser avsnittet ut i min languages.toml för att åstadkomma detta:

[[language]]
name = "python"
auto-format = true
formatter = { command = "sh", args = ["-c", "ruff check --fix --silent - | ruff format - | ruff --select I --fix --silent -"] }

[language-server.pylsp.config.pylsp.plugins]
rope_autoimport = { enabled = true }
rope = { enabled = true }
ruff = { enabled = true, extendSelect = ["I"]}

Några anmärkningar:

Installation av språkservern PyLSP kan ske på litet olika sätt, beroende på hur Python är uppsatt. Viktigast är att Helix finner installationen. Kör hx --health python, eller helix --health python om aliaset inte finns.

$ hx --health python
Configured language servers:
  ✓ pylsp: /usr/bin/pylsp
Configured debug adapter: None
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓

Slutsats

Jag har kört Helix parallellt med VSCode under året, och har gjort årets Advent of Code uteslutande i Helix. Jag är helnöjd, och skulle rekommendera den till någon som vill köra Vim, men ha en något bättre OOTB-upplevelse vad gäller stöd för LSP och multicursors.


Ovanstående inlägg publicerades 2023-12-23. Det går att prenumerera på denna webblogg. Härifrån är följande mål rekommenderade: