A year ago (I still do), I would get so amazed and overwhelmed watching ThePrimeagen navigate the Vim editor. I wanted to do it as well. But I was ...
For further actions, you may consider blocking this person and/or reporting abuse
Once upon a time, I’ve decided to learn vim, mostly because of generic key binds which I wanted to apply to vscode via vim plugin (years of using vscode with my own custom ones left me unhappy each time I encountered different environments) and, additionally, some utilities also uses vi by default. I started with vim plugin in vscode, but quickly found myself confused due to muscle memory associated with vscode. Thought to switch to nvim for the time of learning. Having installed nvim, I picked up some tutorials on youtube that carried me through basic setup and explained basics of lua and nvim apis, so I was able to begin practicing. Days were passing by, more and more I was getting used to it as well as bringing more modifications to the interface to fit my needs. Finally, it ended up with almost perfect setup, a great command over the functionality, and a strong desire never ever again to return to vscode at all.
@tsolan yeah, i couldn't and still find it hard to switch to nvim because the environment is so different out of sudden. I put the one dark theme, and now i feel a little bit less foreign in this new environment. i haven't made the switch entirely to nvim but i can see myself, as you have to reach a perfect setup where i may not want to leave to vs code at all.
By now, I have been using nvim for more than a year and since then never launched vscode…
@tsolan go daawg!!!
Now start using emacs.
@rc2168st what's that? sound devilish 😈😈😈
Increase your productivity by use VIM motions in shell with this command:
Great to add ~/.bashrc or ~/.zshrc
Need press to ESC to turn normal mode.
Usable moves:
0
jump to first,A
jump to end and insert mode.dd
delete line,yy
copy line,p
paste.Detailed information:
How to use vim motions in shell
@pengeszikra added it, thanks for the recommendation.
Don't be afraid to use a distribution like Astro, lazy or Chad neovim. It's a bit of a short cut but will keep you using neovim quicker. After a while you'll want to do the configs yourself to get it just right (in my experience).
Configuring for front end won't be much trouble if you go that route .
@acuwebservices so i did started with nvchad, but i felt too much of the overkill and i didn't understand lot of underneath thing. currently, i'm using kickstart.nvim, which uses lazy.
I remember more than 1.5 year ago I was stumbled upon the videos of NVChad by Dreams of code(Elliott Minns) on YouTube. I was fascinated by how a terminal emulated text editor be so beautifully elegant, aesthetic yet incredibly efficient, powerful and customizable. I used to use VSCode and Pycharm before that and they had a huge start up time which was annoying. I felt I really need to try Neovim, though I never used vanilla vim before that. I was enrolled in a UG CS degree program and was new to the programming world. I felt it really exciting that a text editor has its own programming language, and the scriptable configurations serve as the settings for it.
Also, git installation wizard tempted me to try Vim by prompting,
Vim though very powerful, can be hard to use for beginners
something like that. That was the first time I heard about vim. I started with Neovim with NVChad but didn't learn lua even a little bit (at that time) which made it impossible for me to debug the config, when something crashed. After then switched to several preconfigured distributions out there, Astronvim, Lunarvim, Lazyvim, nyoom.nvim, spacevim. Every Config had a different learning curve and at some point, there were different bugs (like error at opening Telescope or opening a file with attached LSP installed) which were not getting fixed for a long time.I started learning how to be productive in vanilla vim without any plugins, (like opening tabs with
:tabnew
or:tabe
,Texplore
and navigating withCtrl+PageUp
Ctrl+PageDown
etc. Don't need plugin for managing buffers). Learned the vim motions by keep checking out the cheat sheets sometimes. Still learning. Slowly started configuring it step by step from built-in options to extending with plugins, (setting up LSP with Coc.nvim) and had fun along the way. If you want, I can show my vim config in a comment.But there was something missing. In the vim plugin ecosystem, there was no terminal plugin like we have toggleterm in Neovim plugin ecosystem. So, I had dived deep in vimscript and wrote my first vim plugin - turboterm.vim. Very minimal but works as per my needs. And I think I need to implement some more features. Will try when I will have time.
After few months I found some interesting Neovim plugins and none-ls came out in way making me really excited to try Neovim once again and build my own config from scratch (I wanted to have Neovim like a full-blown IDE while vanilla vim will be minimal editor). I was watching ThePrimeagen and TJDevries on YouTube from months. Watched two videos of ThePrimeagen from the vim playlist. Went through full the tutorial ( 0 to LSP from scratch ). He was using Packer while I was using Lazy.nvim. When I was almost satisfied with my config, I wanted to keep it as my own pre-configured distro in my GitHub. I named it Efficienvim.
Overall, I'm pretty much content and satisfied with my config.
I have a desire to learn Lua properly so that I can make some unique plugins in the future.
@ddebajyati you are waaaaay ahead boi! i'm still a timmy. thanks for sharing your story, great read. perhaps turn this long ass comment into a full blog post with all the things you have learned and build. looking forward to it!
i too thinking of diving into Lua, but right now i'm already wrestling with Golang. anyway, learning vim and configuration is on my long term plans, so i've no rush.
Yoh!
Thanks, I may write posts like these in future ✌️🙌
And yes you will be tempted to write plugins in future, if not currently.
You have already done ✅ great work too, learning vim motions is a valuable skill and its universal, available everywhere.
I have one small tip. Configure vim by yourself, take help from youtube videos or documentation if needed, I know it can be a bit overwhelming but mind my words, you will realize just how crazy it can get, because you made it you know it, as simple as that, at first you might get problems while configuring, but once it's all done using the editor will be a blaze.
@ezpieco yes that's the right way. i'm actually planning to do that. but before that, i'll need to look at some lua.
💡Is the reason people in Vim Club always talk about Vim, because they don't know how to quit Vim Club?
@diso are you also part of the vim club?
Configuring frontend is no Biggie. I use it every day, with the help of lazy and mason.
Also check out oil.nvim as netrw replacement.
Yazi for Filemanager with vim keys
@joeschr i'll definitely check that out. I did came across oil.nvim, but again, as I said earlier, I'm trying to stick to default for now. so, for another day for sure.
Once you get the binds to your memory, you won’t be able to use anything else :P
@martinbaun yes 100%. i'm already using vim keybindings outside vim: obsidian.
Read the book practical vim: edit text at the speed of thought, 20 minutes every day during 1 month mades me more faster than the last 9 months using exclusively Neovim
@sirbabyface thanks, found a pdf version on github. hope i get time to read it.
Nice, congrats on two accounts switching to Linux and using VIM. I keep this cheatsheet nearby vim.rtorr.com/
@mannuelf thanks man. although i haven't mentioned this cheat-sheet here, this is my default reference. i didn't list it because it will probably overwhelm newbies. but once you are past the newbie phase, this cheat-sheet is very very handy.
Well written! I always enjoy seeing people join the vim
cultfanclub.@kurealnum i haven't sold my soul to the cult yet
Oh you have, you just don't know it yet.
👀👀👀👀👀
Nice article, your experience motivated me to learn vim myself! But is Vim for everyone, What do you think ?
My opinion is vim is great for every one, because more or less on certain point we are facing a terminal -> shell, during our works. If we are forcing to use windows as developer environment, then I suggest to select gitBash as termina, that is give a near same experience as linux or MacOs shell does.
VIM are installed!
But at the old days I am don't spend time to understund this great editor. Which are seems wierd at first moment compared to nano. But if we spen a bit time to understand the basic movement, than that is good starting point at least to use as side editor, when we don't want to leave a shell.
best movement:
o -> turn to insert mode and we get a new line under current one to write
: -> back to normal mode
:q! -> back to normal mode and close without save
:wq -> back to normal mode save our modification and quit
:e start-typing-filename -> back to normal mode and open any file to read or edit, you get all helps as OS give. Mainly tab help is good at this point.
So I recommended to learn vim to every one.
@pengeszikra agree! at some point, you will be greeted with vi in shell and i remember first time, wondering if this program is broken or what. nothing happened on pressing any keystroke, so i killed the terminal and going to bed in confusion. I wish i had took some time to understand what it was, because now i feel i missed an amazing tool that i would like to carry with myself throughout this programming journey. And you know what, it's not even that hard. Just takes a little time to get used to this mode of thinking and navigating the cursor and editing text.
@navneet_verma i don't know if vim is for everyone but if you have some time, you can try it out and find it yourself.
IDK what you were doing with vscode since I am also using it but without crashing. My laptop is not that high on hardware and my OS is Manjaro.
But sure I am also thinking of moving away from VSCode to something lightweight.
@kasir-barati i think it's something related to wayland. also, when i start vscode, i see massive spike in ram(reaches upto 80% for first 5-10 seconds). I tried disabling all the extensions, the issue still persist.
Opening vim
In cmd type nvim to open vim
Closing vim
press :q to exit vim
Thank me later🙂
Long press the power button.