> ## Content Index
> Fetch the complete content index at: https://itsfoss.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# NeoVim Too Complex? Try Helix as Your First Modal Editor
- URL: https://itsfoss.com/helix-modal-editor/
- Published: 2026-11-10T13:33:19.000Z
- Updated: 2026-11-10T13:33:19.000Z
- Description: Helix is an underrated gem when it comes to modal editors like Vim and Neovim.
- Author: Sreenath
- Tags: Terminal

Helix is a modal text editor that operates much like Vim or Neovim. While switching from a GUI like VSCode takes some practice, mastering a terminal editor truly boosts your daily productivity.

Starting with [Helix](https://itsfoss.com/helix-editor/) is a smooth experience if you have never used modal editors before. The default settings are intuitive, provided you are familiar with your keyboard layout.

You can avoid the hassle of learning a specific programming language just to configure your workspace. Helix delivers a complete and powerful experience right after you install it.

In my opinion, I suggest Helix if you want the Neovim vibe without the massive time investment. It includes modern tools like language server protocols and tree sitter support by default.

🚧

Helix does not have a plugin system at the moment.

Let's look at how you can get started with Helix as your very first modal text editor.

## Installing Helix

Helix is available in the official repositories for several Linux distributions, like Arch Linux, Fedora, and Ubuntu. To install it on Arch Linux, use the command:

```bash
sudo pacman -S helix

```

If you are a Fedora user, install the editor with:

```shell
sudo dnf install helix

```

Ubuntu 26.04 LTS and above also includes Helix in its official repositories. You can install it using:

```shell
sudo apt install hx

```

📋

In Ubuntu, the command name is `hx` and not `helix`.

For all other users, pre-built binaries are available in the official Helix GitHub repository. You can [follow the official documentation](https://docs.helix-editor.com/install.html?ref=itsfoss.com#pre-built-binaries) to complete the installation of these binaries.

[Download Helix](https://github.com/helix-editor/helix/releases?ref=itsfoss.com)

## Modes in Helix

Helix is a modal editor. It means Helix has different modes with dedicated purposes.

Without having an understanding of the modes, it is hard to grasp how the editor works. So, let's see them one by one.

💡

Unlike Vim, Helix follows a select → action model. You always highlight text first, then perform an operation on it. If something feels backwards coming from Vim, this is likely why.

### The Normal Mode

Normal mode is the default state in most modal text editors, where you perform all text manipulations.

Whenever you are elsewhere in the editor, simply press the ESC key to return to this home base. Unlike a traditional editor where you are always in a typing state, modal editors use this mode as a starting point.

For example, you can scroll down a couple of lines by pressing `j` while in normal mode. You can also remove a character under the cursor by pressing `d`.

You cannot type any text while you are in this Normal mode. To start typing, you must enter insert mode by pressing `i` while the editor is in its normal state.

### The Insert Mode

Insert mode is the state where you actually type your text. Most traditional GUI editors, like VSCode, have this mode only where all text actions are carried out with the help of keyboard and mouse.

While in insert mode, you generally focus on entering text rather than deleting or copying it. You can still use the arrow keys to move the cursor around in both normal and insert modes.

Whenever you finish typing, simply press ESC to return to normal mode.

💡

Some other text actions are supported in Insert mode, which takes help of the CTRL and ALT key. Take a look at the [documentation for these commands](https://docs.helix-editor.com/keymap.html?ref=itsfoss.com#insert-mode) in insert mode.

### Select Mode

Select mode is the equivalent of Visual mode in Vim and is used specifically for highlighting text. You enter this mode by pressing `v` while in the Normal mode.

The character under your cursor is automatically selected as soon as you enter this mode. You then use navigation keys to extend that selection across your text.

For example, pressing `l` will extend the selection to the next character, and pressing it again adds the third. You cannot type any new text while you are in this state.

In my experience, combining this with movement shortcuts is incredibly powerful. For instance, I can press `v` followed by `ge` to instantly select everything from my cursor to the last line.

You can even press the `END` key to include the entire last line in your selection. This allows you to highlight massive blocks of text with just a few keystrokes.

Once your selection is finished, use the Normal mode keys to perform an action.

🚧

In Select mode, you can directly apply operators like `d`, `y`, `c` on your selection. No need to press Escape first. The operator acts on the selection and drops you back into Normal mode.

Pressing `d` will delete the entire highlighted block, while `y` will copy it for later use.

### Other modes of purpose

The above three are the main modes in Helix. But there are some more modes that you may come across.

#### Command Mode

When you press `:` in normal mode, you enter the command mode. Here, you can enter supported commands.

Some important operations, like saving a file, quitting the editor, etc., are performed in the command mode.

To save the current file, and quit the editor:

```
:wq

```

Helix offers a lot of commands that you can use. Its [official documentation on commands](https://docs.helix-editor.com/commands.html?ref=itsfoss.com#commands) has listed it more efficiently.

#### Picker Mode

Picker mode is triggered by pressing the Space key in normal mode. It is a fuzzy finder interface, where you can invoke a file picker, buffer picker, etc.

If you know Neovim, this picker mode can be a minimal close equivalent of the Telescope plugin.

For example, we can use `Space + f` to open a file picker.

Also, if I select a block of text and press `Space + Shift + c`, then you can block comment that section, and so on.

0:00 

/0:21 

1× 

Comment code in Helix

### Helix shows the actions

For supplementary modes like picker mode, Helix shows what to press next in a neat pop up.

When you press space, you can see that a pop-up comes up that says all keys and their uses, so that you can read and follow.

Another one I suggest you try is press the `g` key and read all the subkeys and their functions.

![Press the g key to get some interesting actions in Helix](https://itsfoss.com/content/images/2026/11/press-g-key-heliz.png)

Pressing the `g` key

## Access the tutor

Helix has an interactive tutorial available to get you started, like the Vim tutor.

Open a terminal and run the command:

```shell
helix --tutor

```

This will take you to a text, which you will read and perform actions as described.

A beginner should complete this tutorial since it gives you a lot of day-to-day shortcut practice inside a sample text.

## Essential Keybindings

Helix works flawlessly right out of the box. You do not need any configuration files to make any part of the editor work in the beginning.

But, since it depends on keybindings, before going to other areas, let's see some essential shortcuts to get you started.

Shortcuts to move around the text in **Normal mode**.

| Description                                                | Shortcuts |
| ---------------------------------------------------------- | --------- |
| Move one character left/bottom/top/right                   | h/j/k/l   |
| Move to the start of the next word                         | w         |
| Move to the start of the next word (punctuations included) | W         |
| Move back to the start of the word                         | b         |
| Move back to the start of the word (punctuation included)  | B         |
| Move to the end of the next word                           | e         |
| Move to the end of the next word (punctuations included)   | E         |
| Move to the last line of the text                          | ge        |
| Move to the first line of the text                         | gg        |
| Move to the nth line                                       | <n>G      |
| Move to the start of the line                              | HOME      |
| Move to the end of the line                                | END       |
| Move page up                                               | PgUp      |
| Move page down                                             | PgDn      |

Shortcuts to change the text in **Normal Mode**

| Description                                        | Shortcut     |
| -------------------------------------------------- | ------------ |
| Insert before cursor (Enter insert mode)           | i            |
| Insert after cursor                                | a            |
| Insert at the beginning of the line                | I            |
| Insert at the end of a line (append)               | A            |
| Open a new line below cursor and enter insert mode | o            |
| Open a new line above cursor and enter insert mode | O            |
| Replace character under cursor                     | r<character> |
| Delete/cut character under cursor (or selection)   | d            |
| Yank (copy) selection                              | y            |
| Paste selection                                    | p            |
| Paste before cursor                                | P            |
| Yank (copy) to a named register a                  | "<a>y        |
| Paste from a named register a                      | "<a>p        |
| Undo a change                                      | u            |
| Redo a change                                      | U            |

💡

Always use registers to yank texts. This way, it is easy to confirm where a copied text is and easier to paste later.

🚧

The deletion shortcut `d` actually cuts the selected word and stored. So, if you have some texts yanked, and then deleted some other text, the deleted text will be the one pasted when you press `p`. So, use registers for copying important text.

Other routine shortcuts

| Description                                  | Shortcut       | Mode      |
| -------------------------------------------- | -------------- | --------- |
| Search for a pattern in the text             | /<search term> | Normal    |
| Select next search match                     | n              | Selection |
| Select previous search match                 | Shift + n      | Selection |
| Run the command in a shell                   | :!<command>    | Normal    |
| Run the command and add its output to a line | :r !<command>  | Normal    |

You can refer to [the official keymap documentation](https://docs.helix-editor.com/keymap.html?ref=itsfoss.com) for a lot more keyboard shortcuts across modes for specific use cases.

## Create a config file

Helix doesn't need a user-written config file to work since it comes with many usable defaults. Still, changing away from defaults needs a config file.

Helix uses the TOML configuration file, located at `~/.config/helix/config.toml`.

First, create the directory if it does not exist.

```shell
mkdir -p ~/.config/helix/

```

Now, create a file inside this directory like:

```shell
touch ~/.config/helix/config.toml

```

## A different theme

Helix comes with a lot of themes preinstalled, and you don't want to create a long config for it.

Open Helix in a terminal:

```shell
helix

```

Inside Helix, in Normal mode, enter `:theme`, press a space, and press the TAB key.

You can see that themes begin to show preview. Press TAB to scroll through the live preview of themes. When you spot a theme of your choice, note the name of the theme and press Enter.

📋

If you have downloaded the Helix binary, then set of themes are in the `runtime` folder. Make sure you placed it properly [as the documentation say](https://docs.helix-editor.com/install.html?ref=itsfoss.com#pre-built-binaries).

Upon pressing the enter key, the theme will be applied to the current session.

To make it permanent, you need to add one line to the Helix config file.

Edit the config file with your favorite text editor.

```
helix ~/.config/helix/config.toml

```

And add the line

```toml
theme = "theme-name"

```

For example,

```toml
theme = "tokyonight"

```

## Language support

Helix comes with Language Server Protocol Support preset, so there is no need to worry about configuring the LSP.

Still, you need to setup the language server though.

I am using Arch Linux in this example, and in Arch Linux, most of the language server you need are available in the official repository.

To set up CSS support, install the `vscode-css-language-server`

```shell
sudo pacman -S vscode-css-languageserver

```

Helix will spot this , and you can start working on CSS files from your next start.

0:00 

/0:52 

1× 

CSS Language Completion in Helix

To set up Rust support, install the `rust-analyzer` package:

```shell
sudo pacman -S rust-analyzer

```

Refer to the [Language support page in the official documentation](https://docs.helix-editor.com/lang-support.html?ref=itsfoss.com) to know what package needs to be setup to get the language support working.

## Multiple Cursors

Helix supports multiple cursors out of the box. You can duplicate your cursor downward by pressing `Shift + c` in Normal mode.

0:00 

/0:22 

1× 

Multiple Cursors in Helix

This lets you edit several lines at once. If you end up with multiple cursors by accident, press `,` to collapse back to a single cursor.

## Wrapping Up

Helix is a decent modal editor, that offers most of the modern features you would expect in the convenience of an easier learning curve.

I won't suggest replacing Neovim or Vim with Helix if you have mastered those editors. But, if you are into modal editing, or [terminal-based text editing](https://itsfoss.com/command-line-text-editors-linux/) in general, Helix is the best place to start.

 Will you use Helix for all your coding purposes? Or you have another editor that meets all your needs? Do mention in the comments.