Z Neovim do Helix
Tags: neovim, helix, frontend, czech
Published: 2024-03-10 19:52:11

Ahoj jsem dlouho dobí uživatel [Neovim](https://neovim.io/). Za dlouhou dobu jsem si ho vážně vymazlil k svému aby mi dělal co největší radost a stále ji dělá.

Nedávno jsem okusil [Helix](https://helix-editor.com/) editor.
I když mi nenabízí tolik, svým způsobem si mě omotal kolem prstu. A neměl to lehké jíné ovládání, žádné pluginy a například při vývoji frontend nedosahuje na můj již vyladěný [Neovim](https://git.archoslinux.cz/kankys/Nvim-frontend-setup). Nevím proč, ale práce mě v něm velice baví, ale vše není tak růžové. Myslím že šanci aby jste ho zkusily si zaslouží. Můj Helix setup najdeš [zde](https://git.archoslinux.cz/kankys/Helix-frontend-setup). Zatím ho používám chvíly a ještě se s ním seznamuji, ale na vývoj webu se dá už použít. 

**config.toml:**
```
theme = "dracula"


[editor]
color-modes = true
auto-pairs = false

[keys.normal]
"tab" = { c = [":config-open"]}
"esc" = ["collapse_selection", ":w"]

[keys.select]
"esc" = ["collapse_selection", "normal_mode", ":w"]

[keys.insert]
"esc" = ["normal_mode", ":w"]
```

**language.toml:**
```
[language-server.emmet-lsp]
command = "emmet-language-server"
args = ["--stdio"]

[[language]]
name = "html"
roots = [".git"]
language-servers = ["emmet-lsp"]

[language-server.rust-analyzer.config.check]
command = "clippy"

[language-server.emmet-ls]
args = ["--stdio"]
command="emmet-ls"

[[language]]
name = "html"
formatter = { command = 'prettier', args = ["--parser", "html"] }
language-servers = ["vscode-html-language-server", "emmet-ls"]

[[language]]
name = "css"
formatter = { command = 'prettier', args = ["--parser", "css"] }

[[language]]
name = "javascript"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true

[[language]]
name = "typescript"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true

[[language]]
name = "jsx"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
language-servers = ["typescript-language-server", "emmet-ls"]

[[language]]
name = "tsx"
formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
language-servers = ["typescript-language-server", "emmet-ls"]

[[language]]
name = "json"
formatter = { command = 'prettier', args = ["--parser", "json"] }

[[language]]
name = "markdown"
formatter = { command = 'prettier', args = ["--parser", "markdown"] }
soft-wrap.enable = true
soft-wrap.wrap-at-text-width = true
```
A jaké jsou největší bolístky po přechodu z Neovim na Helix?
Ze začátku to bude určitě ovládaní a otočená logiga příkazů kde nejdříve označíte a pak dáte příkaz.
Potom někomu mohou chybět pluginy jako NERDTree s čím jsem, ale něměl problém protože nejvíce používám fzf což v Helixu je defáltně podobný systém který vyvoláte klávesami space -> f.
Ne všechny věci běží jako u mě v Neovim například dokončování kódu.
A co mě nejvíce překvapilo?
 Vše hned funguje pokud vám něco chybí pro váš jazyk stačí zadat v terminálu: `helix --health` a hned vydíte co je třeba doinstalovat a vše najdete [zde](https://github.com/helix-editor/helix/wiki/How-to-install-the-default-language-servers#html).
V Helixu máte přes 100 témat už naistalovaných, bohužel nemůžete si například modifikovat úvodní stranu, nebo jsem aspoň na to nepřišel.
Jak vám ovládání vleze pod ruce budete stejně rychlí jako v Neovim.

Zatím asi na Helix na 100% nepřejdu, ale na menší projekty ho budu určitě používat. Pokud přibude podpora pro Tabnine a pár malích bolístek opraví tak budu velmi silně přemýšlet o přechodu z Neovim.