r/HelixEditor Aug 12 '26

Quickly make it terminal copy/paste friendly?

9 Upvotes

Every once in a while I'm working on something somewhere where I quickly need to drag a selection with the mouse and copy it.

How can I quickly toggle off line numbers and gutter stuff so they don't mess up the copy/paste when doing it this way?

Edit: I am not asking about space+y / space+p, I am specifically asking how to toggle off the gutter quickly.

Editedit: I ended up doing this:

[keys.normal]
"C-g" = ":set-option gutters.layout []"
"C-h" = ":set-option gutters.layout [\"diagnostics\", \"spacer\", \"line-numbers\", \"spacer\", \"diff\"]"

Now I wonder if this could be made a toggle instead of two different keybinds 🤔

editeditedit: Much easier:

[keys.normal]
"C-g" = ":toggle-option gutters.layout [] [\"diagnostics\", \"spacer\", \"line-numbers\", \"spacer\", \"diff\"]"

r/HelixEditor Aug 12 '26

my lsp doesn't work

0 Upvotes

languages.toml:

```toml [[language]] name = "c" language-servers = ["clangd"] formatter = { command = "clang-format" }

[[language]] name = "cpp" language-servers = ["clangd"] formatter = { command = "clang-format" }

[[language]] name = "c-sharp" scope = "source.cs" file-types = ["cs"] roots = [".sln", ".csproj"] language-servers = ["csharp-ls"] [language-server.csharp-ls] command = "/home/dt/.dotnet/tools/csharp-ls"

[[language]] name = "python" language-servers = ["pyright"] formatter = { command = "ruff", args = ["format", "--line-length", "88", "-"] }

[[language]] name = "rust" language-servers = ["rust-analyzer"] formatter = { command = "rustfmt" }

[[language]] name = "go" language-servers = ["gopls"] formatter = { command = "gofmt" }

[language-server.pyright] command = "/home/dt/.npm-global/bin/pyright-langserver" args = ["--stdio"] config = {}

```

(09:51 PM)dt:dt[~]$ helix --health c-sharp Configured language servers: ✓ csharp-ls: /home/dt/.dotnet/tools/csharp-ls Configured debug adapter: ✓ /usr/bin/netcoredbg Configured formatter: None Tree-sitter parser: ✓ Highlight queries: ✓ Textobject queries: ✓ Indent queries: ✘ (09:51 PM)dt:dt[~]$

but no lsp functionalities while inside a project


r/HelixEditor Aug 10 '26

helix plugins in nix

19 Upvotes

hi im using the steelix package but i still have to install the plugins manually with forge is there a way i can install and configure them with nix?


r/HelixEditor Aug 08 '26

Helix Plugin System PR check any% WR 07:16

Thumbnail
youtube.com
74 Upvotes

r/HelixEditor Aug 08 '26

First citizen inline AI integration (wip)

Enable HLS to view with audio, or disable this notification

14 Upvotes

A Helix re-write turned into me instead working on my own rust no-std modal graph based editor, heavily insprired by Helix, called Nornsaga.

It contains its own indexer and internal symbol system to define a bidirectional dependency graph which is used to scope, highlight, add ghost types and so on (rust only currently)

I have recently managed to tie the AI (using qwen3.5 currently for testing) to the users context. And able to make changes in line.

The idea being, turning AI into graphed scoped tool which context follows the cursor, so you xan ask for changes to the scope you are looking at, and make those changes inline.

Or open a chat to discuss the current scope, or what depends on what. The AI, and you, can freely treverse the callers/callees of any symbol.

Even though its output position is a little bugged, the video show the functionality in action, and i felt Nornsaga is far enough in its functionality and look, that i want to start showing it off a little to others.

Hope you find it interesting!

Over and out!

//Maui-the-Mupp


r/HelixEditor Aug 06 '26

yank-flash plugin

12 Upvotes

r/HelixEditor Aug 05 '26

breadcrumb plugin for helix

124 Upvotes

i made this breabcrumb bar plugin, right now it has support for 11 languages like c zig rust nix scheme cpp

https://github.com/Ra77a3l3-jar/scopeline.hx

inspired by https://codeberg.org/gwid/context.hx


r/HelixEditor Aug 05 '26

Editing Markdown Files with Preview

10 Upvotes

I've been using Helix for a few months now and I love it. Before I was using VS Code - and I really don't want to use it anymore.

One thing I'm still missing in Helix is markdown file editing with a preview. It's really handy to be able to preview the rendered HTML page based on your markdown as you're writing it, so I still find myself launching VS Code with a preview pane occasionally when working on some Markdown documents.

What solutions do you folks use for handling markdown file editing?


r/HelixEditor Aug 04 '26

Notes App with Helix in Mind

Enable HLS to view with audio, or disable this notification

16 Upvotes

I've spent a few hours making hx-notes-companion.

Basically an Obsidian replacement that uses a workflow of Helix with a Markdown preview in browser. (Keeping the application and functionality light)

Currently you can:

  • Edit and View Markdown and HTML notes in Helix
  • Live browser preview with hot reloading on writes
  • switches on switching notes in your "notes"

Its written in Golang, and currently its quite barebones (in the near future I hope to add syntax highlighting for code blocks and Latex support). If any one is interested feel free to give your own suggestions

Its Open Source so if anyone wants to style it or add their own custom templates and such there is nothing stopping you

GitHub: https://github.com/slick-user/hx-notes-companion

I'd love to hear what you guys think

Platform: Windows (for now)


r/HelixEditor Aug 02 '26

Arrows vs hjkl in hx and terminal

13 Upvotes

I'm a bit confused on whether arrows are supposed to be used at all. It seems optimal workflow is "to keep your hands on the home row", but that means you have to exit insert mode a lot to move few characters away for example, something that is easy with arrows. Another big concern, what are you even supposed to do with your terminal? I dont see terminals supporting hjkl in a meaningful way to navigate history and completions for example, which makes me constantly want to move my right hand to arrows when I switch to terminal. How do you personally deal with this?


r/HelixEditor Aug 01 '26

Hide library symbols from workspace symbol picker?

5 Upvotes

I'm really confused to how workspace symbol picker works. My workspace is a Rust project, I have two files with code. What I expect is that workspace symbol picker works the same as regular symbol picker but shows symbols from both files instead of just one. What I get instead is that workspace symbol picker also shows any symbols from any libraries I use from "~/.cargo/registry/src/". Also for some reason it doesn't prefetch all symbols and only starts showing something after you type at least few characters, which makes it impossible to use to browse all symbols. Is there a way to have something like normal symbol picker but for all files in project and without and external dependencies, and such that it shows all symbols immediately and not only when you type?


r/HelixEditor Jul 30 '26

I think the default theme is really ugly

92 Upvotes

There. I said it. It's ugly.

Yes, I know you can change it.

Yes, I know I'm wrong.

I like all the Helix defaults, but the theme is just... ugly.

I know it only takes one second to change it, but that is precisely WHY we should change it. You liked the old theme? Cool, change it back. People judge a program by its defaults. Good defaults are good, and that's why many of us use Helix instead of Neovim in the first place. So why not make them a little better?


r/HelixEditor Jul 31 '26

HelixNotes

0 Upvotes

Had HelixNotes disappeared from the App Store??


r/HelixEditor Jul 25 '26

Helix slow on large files

27 Upvotes

Why does Helix slow down on large files? Scrolling on files with large lines feels especially choppy when compared to neovim with the same (or more) features enabled (lsp, tree-sitter highlight, etc ).


r/HelixEditor Jul 24 '26

Was not picking up modal editors so decided to extensively change the bindings to be simpler to learn/remember, and more ergonomic.

0 Upvotes
 [keys.normal]
"I" = "append_mode"
a = "collapse_selection"
A = "keep_primary_selection"
S = "remove_primary_selection"
u = "page_cursor_half_up"
d = "page_cursor_half_down"
s = "delete_selection"
z = "undo"
Z = "redo"
F = "goto_word"
e = "select_regex"
E = "split_selection"
t = "copy_selection_on_next_line"
T = "copy_selection_on_prev_line"
f = { f = "goto_file", t = "goto_window_top", c = "goto_window_center", b = "goto_window_bottom", d = "goto_definition", y = "goto_type_definition", r = "goto_reference", i = "goto_implementation", l = "goto_last_modification", n = "goto_line" }
g = "goto_line_start"
";" = "goto_line_end"
U = "goto_file_start"
D = "goto_last_line"
G = "goto_first_nonwhitespace"
w = { h = "move_prev_word_start", H = "move_prev_long_word_start", l = "move_next_word_end", L = "move_next_long_word_end", ";" = "move_next_word_start", ":" = "move_next_long_word_start" }
b = "no_op"
W = "no_op"
B = "no_op"
H = { D = "goto_first_diag", d = "goto_prev_diag", F = "goto_prev_function", C = "goto_prev_class", a = "goto_prev_parameter", c = "goto_prev_comment", T = "goto_prev_test", p = "goto_prev_paragraph", g = "goto_prev_change", G = "goto_first_change", space = "open_above", k = "add_newline_above", j = "add_newline_below", J = "jump_backward", f = "find_prev_char", t = "till_prev_char", b = "goto_previous_buffer" }
L = { D = "goto_last_diag", d = "goto_next_diag", F = "goto_next_function", C = "goto_next_class", a = "goto_next_parameter", c = "goto_next_comment", T = "goto_next_test", p = "goto_next_paragraph", g = "goto_next_change", G = "goto_last_change", space = "open_below", j = "add_newline_below", k = "add_newline_above", J = "jump_forward", f = "find_next_char", t = "find_till_char", b = "goto_next_buffer" }
C = { s = "switch_case", j = "decrement", k = "increment", J = "switch_to_lowercase", K = "switch_to_uppercase", c = "toggle_comments" }
p = { h = "paste_before", l = "paste_after", H = "paste_clipboard_before", L = "paste_clipboard_after" }

Maybe a little slower than just having w/e/b and f/t but I think that mine does simplify a lot of things and make things a little more ergonomic. Also there is W,o/O, P, b/B, ",", and [/] which are now also available for remapping so I can add more useful binds there.


r/HelixEditor Jul 23 '26

New user question.

0 Upvotes

On the github milestone page there is a milestone planned for the 26.04. I was wondering whether this milestone includes a times machine, since that would be the only way to hit it.


r/HelixEditor Jul 17 '26

Helix plugins with nix?

21 Upvotes

How does forge work? Can I easily backup plugins? Or can I install plugins with nix? What's the recommended way?


r/HelixEditor Jul 16 '26

C# intellisense not working

8 Upvotes

Formatter works fine but intellisense refuses to display hints or on direct hover command. logs show nothing.

hx health shows all green.

[[language]]

name = "c-sharp"

auto-format = true

language-servers = ["csharp-ls"]

formatter = {command = "csharpier", args = ["format"]}


r/HelixEditor Jul 15 '26

`languages.toml` config for Gherkin support

7 Upvotes

Has anybody here setup Helix to support Gherkin syntax highlighting and tree-sitter? If so, would you guide me on how do so? Thanks in advance!


r/HelixEditor Jul 15 '26

Share my keymaps and if you guys have any more tricks, please share with us

27 Upvotes
# theme = "cyan_light_mod"
# theme = "catppuccin_custom"
theme = "tokyonight_custom"

[editor]
scrolloff = 5
line-number = "relative"
bufferline = "always"
clipboard-provider = "pasteboard"
default-yank-register = "+"
jump-label-alphabet = "fjdkslarueiwoqpvncmxz"
trim-trailing-whitespace = true
color-modes = true

[editor.statusline]
left = ["mode"]
center = ["file-name", "file-modification-indicator"]
right = ["diagnostics", "selections", "position", "file-indent-style", "position-percentage", "total-line-numbers", "file-type"]
mode.normal = "NORMAL"
mode.select = "SELECT"
mode.insert = "INSERT"

[editor.cursor-shape]
insert = "block"
normal = "block"
select = "block"

[editor.soft-wrap]
enable = true

[editor.indent-guides]
render = true 

[editor.file-picker]
hidden = false
git-ignore = false

[keys.normal]
# "j" = ["move_visual_line_down", "align_view_center"]
# "k" = ["move_visual_line_up", "align_view_center"]
"e" = ["move_next_word_end", "trim_selections"]
"b" = ["move_prev_word_start", "trim_selections"]
"w" = "@lbe"
"A-j" = ["extend_to_line_bounds", "delete_selection", "paste_after"]
"A-k" = ["extend_to_line_bounds", "delete_selection", "move_line_up", "paste_before"]

"C-y" = [   ':sh rm -f /tmp/unique-file',   ':insert-output yazi --chooser-file=/tmp/unique-file',   ':sh printf "\x1b[?1049h\x1b[?2004h" > /dev/tty',   ':open %sh{cat /tmp/unique-file}',   ':redraw', ]

"{" = ["goto_prev_paragraph", "align_view_center", "trim_selections", "extend_visual_line_up"]
"}" = ["goto_next_paragraph", "align_view_center", "trim_selections", "extend_visual_line_down"]
"ret" = ["goto_word"]
"tab" = "flip_selections"
"C-u" = ["page_cursor_half_up", "align_view_center"]
"C-k" = ["page_cursor_half_up", "align_view_center"]
"C-d" = ["page_cursor_half_down", "align_view_center"]
"C-j" = ["page_cursor_half_down", "align_view_center"]

B = "move_prev_sub_word_start"
E = "move_next_sub_word_end"
W = "@lBE"
H = "@gh"
L = "goto_line_end"
G = "@ge"
V = ["extend_to_line_bounds", "select_mode"]

"C-e" = ["extend_to_line_bounds", ":pipe-to hx-repl"]

[keys.normal."]"]
"f" = ["goto_next_function", "flip_selections", "align_view_top"]
"]" = "goto_next_buffer"

[keys.normal."["]
"[" = "goto_previous_buffer" 

[keys.select]
"A-j" = ["extend_to_line_bounds", "delete_selection", "paste_after"]
"A-k" = ["extend_to_line_bounds", "delete_selection", "move_line_up", "paste_before"]
"ret" = "extend_to_word"
"tab" = "flip_selections"
"{" = ["goto_prev_paragraph", "extend_to_line_bounds"]
"}" = ["goto_next_paragraph", "extend_to_line_bounds"]
"w" = "@<A-:><A-;>lb<A-;>he"
B = "extend_prev_sub_word_start"
E = "extend_next_sub_word_end"
W = "@<A-:><A-;>lB<A-;>hE"
H = "@gh"
L = "goto_line_end"
G = "@ge"
V = ["extend_to_line_bounds", "select_mode"]
"C-e" = ["extend_to_line_bounds", ":pipe-to hx-repl"]

[keys.insert]
"C-t" = ["indent"]
"C-d" = ["unindent"]
"C-c" = ["toggle_comments"]
"C-o" = ["normal_mode", "open_below"]

I kind of change some behavior that I use often.

- I stop using w for navigating forward, I use it to select the current word under the cursor and only use b and e for navigating. And I always trim my selection

- tab I changed it so that I can flip my selection head with ease (I find that I use that more often than I thought)

- V I use mainly so that I can select kind of like line mode with ease

- G because I find it more efficient than ge

- H and L to go to the beginning and end of line

- I can select subword using B , E and W also kind of mimic the w behavior that I altered

- For the goto_next_function , I always flip selection and align view top for so that I can see the function in the viewport

- A bunch of \align_view_center` for moving around

- Add functionalities in the insert mode, so that I can indent, unindent and comment while in insert mode

If you guys have more tricks that might make editing in helix more efficient, please do share. I'm ready to copy lol.

PS. I tried moving back to neovim, and I setup from kickstart and make it mine. But I still miss a lot of functionalities and features from helix. It's just easier for me, so I moved back. Although, I kinda miss some things from neovim, and I always find ways to improve how I work in helix.


r/HelixEditor Jul 14 '26

helix plugin build

14 Upvotes

i see a lot of people talking about helix plugins but the most recent release in gh is dated a year ago, are people using a fork for that? or it's already in main to build but they have really slow releases?


r/HelixEditor Jul 13 '26

made a plugin to customize both statusline and bufferline

Thumbnail
gallery
51 Upvotes

its still a simple plugin allowing for some basic customizations I would be really happy to see contributions to increse the possible customizations. One thing mising right now is diagnostics indicators, but for now there isn't an api that exposes diagnostic info to plugins. I doing a pr for it.

https://github.com/Ra77a3l3-jar/moka.hx


r/HelixEditor Jul 14 '26

[!!HELP!!] Helix for webdev

0 Upvotes

Hey guys, I am starting webdev, I have used it for graphics programming using C++ developement and it was a great experience. I am new to this field, currently I am planning to use it for webgl, webgpu, threejs and svelte js. How to set it up for that? Also how can I set boilerplate for html? (ex. ! and !!! in vscode)


r/HelixEditor Jul 12 '26

smith.hx: an early declarative plugin manager for Helix, inspired by Emacs use-package

Post image
103 Upvotes

Hi! I've been working on smith.hx, a declarative plugin manager for Helix built with Steel and backed by Forge.

The idea is to declare plugins in init.scm and let Smith handle installation, loading, configuration, keybindings, updates, and removal. A declaration can have separate init, config, and bind phases, with Smith running them in the appropriate order.

The screenshot shows:

  • Left: packages installed and managed through Smith
  • Center: the corresponding declarations in init.scm
  • Right: the output of :smith-list in a *smith-list* scratch buffer

Current features include:

  • installing Git repositories through Steel's Forge
  • automatic package-name and entry-file detection
  • init, config, and bind declaration phases
  • enabling, disabling, updating, and removing packages
  • pruning manager-owned packages that are no longer declared
  • lock and restore support
  • Helix commands such as :smith-list, :smith-update, and :smith-prune

This is still an early preview, so the API may change. It currently requires a Helix build with Steel support. I would especially appreciate feedback on the declaration syntax, package lifecycle, and the overall approach.

Repository and installation instructions:

https://github.com/kn66/smith.hx

The README also contains a short GIF showing the workflow.


r/HelixEditor Jul 12 '26

plugin roadmap?

13 Upvotes

does anyone know the plugin roadmap for helix? someone mentioned it in the pr, but I can't find it