I'm slowly getting used on how to navigate and edit things in the terminal without leaving the keyboard and arrow keys. I'm getting faster and It improved my workflow in the terminal (Yeahhii).
ctrl + a e f b u k ...
alt + f b d ...
But yesterday I had such a bad experience while editing a backup bash script with nano. It took me like an hour to completely edit small changes like a caveman and always broke the editor when I used memory reflex terminal shortcuts.
This really pissed me... I know nano also has minimal/limited shortcuts but having to memorize and switch between different one for different purpose seems like a waste of time.
I think I tried emacs a few month ago but It didn't clicked. I didn't spend enough time though, tried it for a few minutes and deleted it afterwards. Maybe I should give it a second try?
I also gave Vim a try, but that session is still open and can't exit (đ )! Vim seems rather to complex for my workflow, I'm just a self-taught poweruser making his way through linux. Am I wrong?
Isn't there something more "universal" ? That works everywhere I go the same? Something portable, so I can use it everywhere I go?
I'm very interested in everyone's thought, insight, personal experience and tip/tricks to avoid what happened yesterday !
Seconding vim as the universal Unix/Linux editor. It takes a while to become a real vim pro, but learning basic usage is very helpful. Escape to switch to normal mode (where letters trigger functions instead of just typing), i to switch to input mode, : in normal mode to enter commands, :wq to save and quit, :q! to exit without saving - that alone should be enough to cover a lot of basic use cases. If you ever want to learn more, there are plenty of tutorials online.
MICRO! It's shortcuts are the same as any "gui" editor, so ctrl+S to save, ctrl+Q to quit, ctrl-C to copy etc, and also has an awesome mouse support (you don't have to use the Mouse, but if sometimes you do, it works). It's the first thing I install on new systems, give it a try ;)
Heyy ! Thank you! I installed it right away and it seems exactly something I had in mind ! Plus point, it's written in GO and their documentation seems on point !
Do you think it makes sens to "sync" the shortcuts between micro and the terminal? I mean, changing ctrl+e and ctrl+a in micro to have the same behavior as in my bash terminal? Or does your brain just switch between them and you always now when to use what shortcut?
Hope it makes sense and you somehow understand what I'm trying to achieve/explain.
I barely know any of the fancy shortcuts, never successfully used a macro in my life, can't remember how to open more than one edit buffer and have to look it up every single time, and I still constantly wrongfoot copy and paste regularly to the point where I consider it a waste of my time to try and I just type things out the long way. I totally get why people feel very defeated by this editor.
But I do feel very slick darting around with hjkl, occasionally throwing in a gg or a G or a $ to leap around. Yeah, there are faster ways to get where I want if I'd only learn them, and I may some day, but this gets me around. If you can build up just the basic movements, that's enough to at least begin to appreciate the editor.
Not having to touch my mouse to edit text is a massive game changer that is worth it on its own. Not that vim is the only one that offers this benefit, of course. But what it does well that I haven't experienced in editors I've tried is how beautifully it flows if you happen to already know how to touch-type. Y'know, hands on the homerow, certain fingers hit certain keys, building up the muscle memory so you don't have to look at the keyboard to type, all that. It's why vim uses hjkl to move the cursor--it's where the right hand rests in a touch-typist position.
If you don't use keyboards this way, vim will probably ruin you. I know a lot of people who are proficient typists who never learned standard touch typing, instead home-rolling their own cursed setup that works for them, and god bless them, but they would be hard-pressed to negotiate vim. If this is you, vim may not be the editor for you.
If you donât use keyboards this way, vim will probably ruin you. I know a lot of people who are proficient typists who never learned standard touch typing, instead home-rolling their own cursed setup that works for them, and god bless them, but they would be hard-pressed to negotiate vim. If this is you, vim may not be the editor for you.
Yeah so vim isn't for me right now... Maybe in a unknown future where I find the motivation to learn the standard touch typing, but I have the feeling this add to much constrain and strange wrist movements (maybe i'm wrong ).
Thanks your thoughtful input and personal experience !
Proper touch typing is a dramatic increase to ergonomics and efficiency, and will reduce strain overall. Your wrists shouldn't be moving much if at all while touch typing. There are lots of free online resources available for you to learn how to touch type quickly (and properly). When I first learned how to touch type after years of looking at my keyboard, I got from 0 to 30WPM in a few days of spending a couple hours each day. After a week, I had almost doubled my WPM before learning touch typing, at 60WPM. It's a very important skill that you will be glad you learned if you have regular interactions with computers.
But I understand that this is beyond the scope of your original post.
As far as portability is concerned, you will find vi (the predecessor to vim) on basically any Linux system you will ever run across. It works consistently and is installed by default basically everywhere. I used to hate vim, but after taking the minimal amount of effort to learn neovim, creating my own keybinds, and installing plugins, I've come to absolutely love it. It just takes a small amount of time to wrap your head around switching between insert mode and command mode (i to enter insert mode, escape to leave insert mode back into command mode, :w to save in command mode, and :q to quit in command mode (can combine to save and quit with :wq)), but after that it becomes quite intuitive.
You could even use a mouse with vim/neovim, though I would recommend keeping that usage to when you are scrolling through a large file quickly, looking for errors, etc. where you don't need to be actively typing. You can even turn it into an IDE with the use of language servers that will find compilation errors in files, similar to what you can achieve in something like VS Code. The possibilities are endless. Yes, it has a steep learning curve if you want to get incredibly efficient with it, but you can pick up basic editing in vim very quickly.
I can never reliably cut/copy and paste what I want in Vim. I'm always either picking up or leaving behind stray characters at the edges of my visual selection, because I find the end cursor so counterintuitive.
Especially true when newlines are involved, it's always a mystery how many newlines I'll paste into my document when I hit p to put.
This is not Vim's fault, it's just skill issue.
Oh, and it's also a mystery whether the system clipboard will work properly with Vim out of the box or not. There's some voodoo setting you have to tweak if it doesn't.
I remember first using Vim a good 25+ years ago at this point. I hated it. Then I learned it. Now everything else just feels like shit.
That said, try a bunch of different editors and see which one you like most. Try micro (you can probably just install it from your package manager), it might make you happy with your old Windows muscle memory.