Logo

dev-resources.site

for different kinds of informations.

What I've Learned About My Editing Skills

Published at
12/10/2024
Categories
vim
helix
neovim
editors
Author
ik5
Categories
4 categories in total
vim
open
helix
open
neovim
open
editors
open
Author
3 person written this
ik5
open
What I've Learned About My Editing Skills

I experimented with an impressive text editor called Helix.

I believe the work on this editor is fantastic, and I love its feature set.

However, I have one โ€œsmallโ€ issue with it โ€” it operates very differently from (neo)vim key bindings.
I tried to reconfigure it to be as close to vim as possible, but I couldn't achieve 100% vim-like key bindings.

If you think I'm criticizing the editor, think again. It's awesome, and you should give it a try (at least for a month).

This post is about what I learned about my skills while trying the editor.

Some History

In the year 2000, I started using Unix systems (AIX, Solaris, and FreeBSD) as a user for specific services, and I liked them much more compared to Windows. By the end of the year, someone offered me to try something new called Linux.

He gave me a CD named Mandrake Linux, and when I booted my machine, I saw a nice GUI installation screen.

Back then, I was a Windows-based software developer (Delphi, VB(A), and some basic yucky C++), so it was very different for me.

A friend showed me a cool editor named vim and some tricks he did with text on it.

In 2003, Microsoft decided to obsolete a library that a startup I worked for used, and I decided to move from the MS world to Linux.
I think it was the best decision of my life.

I wanted to understand how to do the cool stuff I saw with vim, so I wrote a guide on how to do some basic work in VIM (in my native language) to help me learn vim.

The VIM Language

One big misunderstanding about vim for non-vim users is the lack of randomness when using keys.

You have a count of something, an action to do, and a movement of some kind.

What does it mean?

  • 3yw means to copy 3 boundaries of words (including spaces) forward.

  • 3ye means to copy 3 boundaries of words (not including the last space) forward.

  • 3yb means to copy 3 boundaries of words (including the first space) backward.

  • 3dw means to delete 3 boundaries of words (including spaces) forward.

  • 3cw means to change 3 boundaries of words (including spaces) forward.

Can you see a pattern?
That's the vim language, but it's more than that. You can do it on paragraphs, parameters, and more.

What does โ€œmoreโ€ mean? You have something called โ€œtext objectsโ€ that you can define, for example, โ€œclass,โ€ "method," etc.

Skills, Damn Skills, and Muscle Memory

One of the issues I have with vim (I actually use neovim for several years now) is that I do not remember most of the language.

Even while writing this blog post, I needed to test what I've written regarding the vim language because I do not remember it by heart.

So, how do I use vim? Muscle memory.

I just do it, and it works for me for some strange reason.

And that's my issue with the Helix editor โ€” it uses similar but different key bindings for doing the same things.
While I can find a way to re-learn it, I still need vim when I'm inside servers (for example).

But I can't figure out how to have two types of muscle memory based on the application I'm using. It's the same for me when I'm writing software.
I'm polyglot and use around 3 programming languages at the moment, and in each language, I sometimes write the wrong syntax at the start.
Also, it happens to me when I'm using different human languages that are close to each other (e.g., Spanish, Portuguese, and Italian) while my native language is not Latin-based.

But why the vim way and not something word processing-like (nano, pico, emacs, VSc, etc.)?

First, I live in the terminal. I love it, and for most stuff, it is enough for me, so Zed or VSc are not that.
Second, I find myself much more productive while using the vim language over word processing shortcuts.

So now I'm in a deadlock situation where an amazing text editor is unusable for me simply because it offers a means that makes me work well but with a different language.

Where Do I Go From Here?

Maybe I'll try Evil Helix: "A soft fork of Helix which introduces Vim keybindings and more."

But I think I wil keep myself at the moment in (neo)vim, until my skills becomes better.

editors Article's
30 articles in total
Favicon
What do you think of the Cursor editor?
Favicon
What I've Learned About My Editing Skills
Favicon
Better autosave and autoformat in Visual Studio Code
Favicon
Helix Editor: a matter of questionable existence
Favicon
Pastes.io - DDOS attacks
Favicon
Emacs is More Like a Terminal Than an Editor
Favicon
In-context AI chat with GitHub Copilot
Favicon
Most important commands in Helix
Favicon
The Helix way
Favicon
Why use Neovim
Favicon
Getting Sublime Text modal
Favicon
I moved to Neovim and love it, but is it right for you?
Favicon
How to Build and Run a Vapor Project on Native Open-Source MacOS Nimble Editor
Favicon
AutoCompletion in Native Open-Source MacOS Nimble Editor
Favicon
Create and Link Swift Packages from Nimble to Cross-Platform Native App Projects
Favicon
Nimble - native, open-source, extendable MacOS Code Editor
Favicon
Developer Diaries: How We Built a Better Browser-Based IDE with Monaco
Favicon
My Developer Setup in 2022!
Favicon
The Must-Have Neovim Plugins for Julia
Favicon
Visual Studio Code Must Use Extensions
Favicon
Top 15 free online code editors
Favicon
Use Tools that Suit You and the Problem
Favicon
Locking editor panes in Visual Studio Code prevents unwanted multi-tab experiences
Favicon
Stop using IDEs and instead use these editors in 2021
Favicon
Never use TABS for code indentation
Favicon
Do you use a vim-like editor?
Favicon
Using the `ed` editor
Favicon
Online Code Editors
Favicon
9 React Native IDEs and Editors for React Native App Development
Favicon
Spacemacs and My Exit From VSCode

Featured ones: