In a Hollywood movie, there is often a scene that many of us are not fond of. It’s the moment when a so-called “hacker” sits at the keyboard and flawlessly hacks into something. We see their fingers dancing on the keyboard, and different windows flashing on the screen filled with text. It looks so surreal and unlike our regular work that when someone asks us if that’s what we coders do, we either nod fearlessly or simply deny it. Because that’s just a Hollywood movie, it’s all fiction.
Reality of programmers
Let me tell you how I discovered a solution that enables me to efficiently perform my daily tasks and solve problems in seconds, not days.
I sat in my chair, hunching over with cramped hands and twisted wrists, using a small pointing device for menus and web browsing. And I couldn’t help but wonder if I was the only one suffering from what I call FWF – Fatal Wrist Factor, or maybe I’m just a dinosaur. So I decided to ask…
What is a Neovim?
I came across a potential solution on a developer forum and decided to try it out. It’s called NeoVim, which is a version of Vim that utilizes LUA to enable scripted extensions to the editor. I quickly realized that it not only fulfilled all of my requirements, but also had a streamlined approach to keyboard commands that allowed me to effortlessly and rapidly edit my files.
I quickly picked up NeoVim and found myself completing all coding tasks much more efficiently compared to using a mouse and a full IDE, thanks to NeoVim’s approach to text editing and the extensions I added to it. The LSP-ZERO plugin fixed all syntax highlighting issues, while Gitsigns made my editor aware of all git changes in the edited files, filling all the gaps of the Vim Fugitive project for git management. Treesitter made code completion work flawlessly, and Telescope and Harpoon made NeoVim project-aware entirely. And let’s not forget Vimspector, which helps you debug all your code.
There was one thing missing, though. Not everything could be done solely within the editor. I needed the terminal – one that could be made project-aware like I did with my NeoVim. However, there were other factors that raised concerns, such as having multiple graphical interfaces open at once…
How the Terminal Multiplexer (TMUX) concept works?
The idea behind TMUX is to organize your terminals into windows, each of which can have multiple panes. You can name your windows like projects, for example, and the panels will display the currently running task in the title. Since NeoVim is already running in your terminal, you can easily script TMUX to quickly switch between projects in your folder. This creates a powerful IDE that doesn’t require a mouse.
What was all that about?
To sum up, was this just a middle-aged hippie trying to come up with an excuse to use more terminals on a modern computer? After all, one can always learn to use the mouse more efficiently and adapt, right?
Well, the answer is both yes and no. It wasn’t just about alleviating cramps, although that did help. By repositioning my screen and choosing a better keyboard, I was able to overcome the challenges of aging. However, it had some incredible side effects.
Side effects: more and faster
Firstly, it made me more conscious of the systems and tools available to me. All command line tools I used to use before I found more flexible and faster than any plugin you could add to my Visual Studio Code or any other graphical IDE, for that matter.
But it also significantly accelerated everything I was doing. By focusing on a screen full of text and knowing all the shortcuts for better and more efficient editing and finding solving issues in seconds rather than days.
And maybe that’s just my romantic nature, but thanks to all of that, I feel more like Hemsworth or Reeves now than a dinosaur with a hump and two cramped hands.
Do you want to join a team where you will be able to use the latest technological solutions? We are hiring! See open positions at Leocode