Helix

Tags: #helix

11 June 2023


Helix

This is the primary editor which I'm using as of now and sometimes I use neovim too. If you're interested in learning about the latest features then I would recommended going through the release highlights of helix. They are very small, focused and good articles explaining new features in Helix.

Yanking to system's clipboard

Select the words (w) or lines (x) and then after that use space + y to yank the selected text to the system's clipboard. I use it when I'm in the editor and wanted to share code snippets with someone or wanted to search about it in the browser.

Checking support for a language server

$ hx --health

This will give you a long list of the programming languages supported and their respective language server if it's present in your system. I find this confusing to be honest.

$ hx --health go
Configured language server: gopls
Binary for language server: /home/k7/go/bin/gopls
Configured debug adapter: dlv
Binary for debug adapter: /home/k7/go/bin/dlv
Highlight queries: ✓
Textobject queries: ✓
Indent queries: ✓

This is more convenient for me as this gives me a very clean output.

Inlay Hints support

This is something that can be configured via your languages.toml file which sits at ~/.config/helix/languages.toml in Linux environments.

[[language]]
name="go"
[language.config]
"formatting.gofumpt" = true
"ui.diagnostic.staticcheck" = true
[language.config.hints]
"assignVariableTypes" = true
"compositeLiteralFields" = true
"compositeLiteralTypes" = true
"constantValues" = true
"parameterNames" = true
"rangeVariableTypes" = true

[[language]]
name="rust"
auto-format = true
language-server = { args = ["run", "stable", "rust-analyzer"], command = "rustup" }
[language.config.check]
command = "clippy"

This looks amazing if you've the right theme. With some themes it becomes confusing.

Autocomplete

I haven't enabled this for a long while but I think it has some very serious advantage. It's fantastic, and I regret not discovering it sooner. You can set your keymaps and the one and only keymap which I've set in my helix config is the following.

[keys.insert]
C-j = "completion"

Multicursor

You can use shift + c to create multiple cursor under the same character where you're as of now.

Picker Mode

ctrl-s open the selected entry horizontally. ctrl-v open the seleteced entry vertically. ctrl-t toggle between preview window.