@@KettLovahr I am currently torturing myself in this way, and it ain't going well chief, why is everything in Windows is so much more pain... (Can't use Linux for remote day job due reasons which can't be fixed, used to use full time linux otherwise /:)
This guy is totally correct, getting vim IDE setup if you are new is like getting a PhD, especially when you compare it to what VSCode gives you first out of the box and even more so after you install the most popular/suggested extensions
Definitely this. I gave vim a small kick of the tires, like really small, but I realized that in the time it would take me to even understand the basics, and setup the tooling for various languages, VSCode would have had me hours deep into actual work. It feels like there's increasingly this "Vim is for the kewl kids" attitude that's popping up while people simultaneously "oh but use whatever you're comfortable with" and its kinda weird and a bit annoying because it feels like increasingly you are judged for your tools rather than the code in your heart. Its further compounded with the idea that when people talk about vscode being slow, I realized they're all using it wrong, which sounds like that Iphone commercial, but I mean seriously. They all miss the paradigm which is that you open up the workspace, it takes 20 seconds for everything too boot up, and then its just as fast as anything from there, with just as much shortcut configurability, but with none of the headache. With VSCode, I only learn the shortcuts I use frequently. Maybe I'm just not built that way, but I just can't imagine remembering what feels like 50 shortcuts you need to remember simultaneously and intuitively at any given time to be proficient in Vim, and it's just like, I feel like there is better use of my working memory, of which I have very little. So like yea, I don't doubt there are some people out there for whom remembering that many shortcuts is a breeze, and they work on remote servers so much where for some reason they wouldn't want to use VSCode remote that VIM is attractive there, so I won't yuck their yum. Their yum is just yuck to me.
@@BeefIngot The problem with the remote servers argument is that people trick out their vim installs with tons of plugins and keyboard configurations. Which won't be present or set up on a remote box, so you're back to bog standard vim. As for VSCode being slow, maybe on a ten year old potato. It's fine on anything even remotely modern. And, yes, VSCode is for working inside projects and project folder structures, not fiddling about with dispersed config scripts or continuously cranking up from the command line.
It's unfortunate that this is true. It's nice that atleast neovim has done a lot of good things when it comes to this compared to regular old vim. Atleast neovim has lsp and editorconfig out of the box
it's kinda mindblowing to see a person who is into linux and have years of experience with vim but only starting his programming journey, usually you expect to be the other way around
That would have been true maybe 10 years ago. A lot of people only use Linux now to spin up VMs for web hosting etc, so don't do anything particularly technical with it.
Yeah, for me it was first programming in vscode in windows for a few months, then using the vim extension in vscode after seeing prime's frontend master course on vim, and after that it was smooth sailing to having a configured linux setup
I get this guy. Setting up a good vim experience the first time around is really tough. And there's a matter of priorities, maybe he'll revisit neovim again one day, but for now he's prioritizing learning to code with the tool he could find that helps him to do that. That's what it's all about. I thought it was a great video.
I started neovim a couple of weeks ago. Using it to learn C. It seems fine to me. There is syntax highlighting auto indenting, pretty much all that is needed for learning a language. I just slowly modify things as I go. The real mistake is thinking you need an IDE for learning. Code completion with syntex correction doesn't help you learn. Typing and bug fixing does
I agree. And I feel that the defaults could be better. I am currently moving new projects to neovim b/c neovim works for me now, but honestly it is slowing me down because of "how do I do this?" or "well, this works *almost* the way it should".
I can't believe as a Linux Noob and beginner programmer that I was sucked into VIM as an IDE. Ultimately I love VIM as an IDE for webdev, but anytime I try to do anything not webdev related in newovim it just doesnt work as well and I run into a million little issues. VSCode with a Vim plugin is almost just as good
@@neilcraig2593 i use vim keybindings in intellij because I just like that the debugger works with 0 configuration. renaimg stuff is just easier than any neovim config I have tried (i.e. renaming the file renames the class in java, when I used to write java) I use neovim with lots of config as well and trying to make the shift to it when I write go but debugging is a pain in the ass to set up and have it work, sometimes I'm tired midway and feel like i haven't gotten to fix the bug since half of the time is spent on me learning how to use the tool, no bueno.
I knew it was Kate because I'm a KDE fanboy and stumbled across one of his videos fawning over Kate before. Kate is honestly pretty darn neat: integrates well with LSPs, is lightweight, you can enable Vim motions without needing a plugin, has a decent project manager, has nice visual Git integration, etc etc. It basically feels like "VSCode with the plugins I need but without the BLOAT". It's my second editor of choice after NeoVim.
If you are a Mac fanboy Nova provides a similar experience in that it doesn't have all the features VSCode does, but it does a lot of things OOTB and everything it does is done well.
I was a Linux guy before I got into software. It's because I liked tweaking things, I was heavy into Windows customization around XP era, and then when Vista came out, everything sucked, and a friend had me try Linux Mint. My gateway to development was literally ricing my desktop.
I love Vim, but I stick Intellij IDEs, which is basically at the opposity spectrum of IDEs compared to Vim. And the reason is that Vim is really amazing if you need to switch files and dump code in a fast workflow. But once you get to a big codebase, you'll spend most of your time staring at the screen while trying to figure out how to add/fix things (especially if you are not one of the creators of the codebase), which is where I'm at now. The only thing I never leave is Vim keybinds (available in most IDEs).
Fully agree with you. vi user since 1995 (!) but modern programming jobs require more than just the good editor. Every sensible IDE has a vim plugin and then you're set for a nice experience. Integrated stepping debuggers / breakpoint setting, jumping to and from files, starting stuff, managing a set of docker containers, tailing logs at the same time, etc. You're better off with the intellij family of IDEs.
@@MeriaDuckisn't this going to be 100% better with Vim + Tmux (for switching between log tailing, debug, run something, etc.) if you're on Linux? And jumping around files using grep too (you search specifically for functions / set up something like Harpoon) Just curious, mad respect for being in tech for so long!
Exactly. All the power of an IDE with the bindings of VIM. I’m not really interested in maintianing my own IDE, so I just lay Jetbrains. 100% worth it just for the refactoring
I was in the same boat last year with the vim config rabbithole. Since switching to AstroNvim I could not be happier since the awesome Astro community provides plug and play configs.
Astro, LunarVim and all those preconfigs are really good to get a full blown IDE. I've tried them but kickstarter really locked me in. Made me capable to code without feeling bloated. I've added a few things here and there just by reading the config and I love it!
Been using Astro as my Vim distro of choice for little over 2 months already, and it's been for the most part a smooth ride. I still have some issues here and there, but in time I'll get around to learning it well enough to (hopefully) iron out those kinks.
I started with LazyVim and soon as i started learning about neovim and the options and then popular plugins and what they do I identified what I liked and used and what I didnt. Graudally, I pulled all of the lazyVim defaults into my local config and removed all of the things that I felt like i didn't need and changed things to suit my needs. I think this worked great! It allowed me to get started with a full feature IDE to still be productive and gradually reduce the "bloat" and configure things how I like as I learnt neovim itself
Truthfully, Kate is amazing for journaling/organizing text stuff. If you're too lazy to go full-terminal, Kate does a great job because Kate has sessions you can save and you're prompted at start with those sessions. You can also force Linux to start Kate at boot, so you can start your day with various organizational tasks. It also feels like a fairly good text editor for simple stuff such as Python, so I kinda understand the guy.
That's so true. Despite being so used to never using simple editors, kate somehow accidentally ended up being how i manage a lot of notes and reading code other people send me, and it just works. It feels like a simple "notepad" at first, but it's a hell of a lot more useful than the rest of the similarly featured "notepad"s out there, just because of the good ergonomics.
I don't give a flying f about helix being written in rust.. but I think what they did with their version of vim motions is more consistent and the space leader key with decent mnemonics (like spc-g-d go to definition etc) is just good UX. I think they genuinely managed to take that part of vim and make it better.. also, defaults are GREAT. Yeah, the customization isn't there but it's a damn good effort.
20:40 that is 100% true. I learned elisp for emacs (let’s say I learned the basics and still learn it) and in the beginning I took little exercises to learn. The first exercise was “return if a given year is a leap year”. And there I was, coding professionally at work for several years in C and Rust, knowing exactly how to do that mathematically, sitting in front of my screen having absolutely no idea what to hammer into my keyboard in lisp. Well almost, at least I knew it had to start with a parenthesis
This guy's channel is great, helped me so much when I was setting up i3 for the first time. Weirdly though, this video has made me take the plunge and switch to Neovim. Been considering it for a while now, but watching this, and having to deal with VS Code BS today was the final straw.
I actually empathize with this person a lot. Lately I moved over to an ortholinear keyboard, and started learning to use COLEMAK and all of the sudden I am a newbie in vim, though I have been using it for 15+ years. Everything because more difficult to learn (I wanted to start learning lua but not happening yet), so all with "choose your battles" kind of mentality. Most likely, the person will come back to neovim and programming with better foundations and less friction to add the personalization part of NeoVIM on top of the rest.
From someone who made this move, there are definite trade-offs. It's great for the fingers and wrists. But it also means things like vim are more awkward. Helping someone else in person when you need to takeover their keyboard is ridiculously difficult. As for Vim, I got used to navigation keys where they fell on Colemak and it's not terribly inconvenient, especially since jumping further is more common anyway.
I use split corne with colemak-dh. I recommended rebinding only mnei to hjkl. I learned vim before colemak. And it was hard for first 3 days maybe. I can cope, bare with hjkl on remote machine since for me not that often. But hjkl isn't that far appart on colemak tho.
@@darukutsu I am using dh as well, I chose not to remap those. After all there are plenty of other ways to move around that make movements in vim not only depend on those (and I have no intention to remap everything:) )
Also a Colemak-DH user who remapped, can’t say I regret switching to Colemak given my faster typing speed and complete lack of wrist problems. However, certainly makes things inconvenient. I ultimately decided to go with remapping hjkl since I felt like half the point of vim bindings was the home row. Definitely some trade offs like using vim bindings in other applications, either can’t use them or see if there’s a vimrc plugin I can quickly use to remap. I don’t commonly ssh into other machines but when I do I typically use distant.nvim for large edits (which ends up being nicer anyway since I get syntax highlighting and my other convenient remaps+plugins). Otherwise resorting to arrow keys in vi for really quick things.
If you're on KDE, Kate is an absolutely wonderful editor, and the vim integration is solid. I have a bunch of vids on my channel using it to write Python
One of the selling point of Helix editor was that it was "fast", which sounded absurd to me considering how responsive vim was. That is until i tried on of those prepackaged neovim distros - i think it was lunar vim. Holy shoot was that thing slow. Gona say - haters gotta hate, but i just love helix for what it is.
What’s made Neovim so enjoyable for me is a simple rule: never add something to my config if I don’t know how it works or what it does. I’m missing some bells and whistles but my config is manageable because I have added every plugin myself when I’m seeking a tool that does “X” that I need. However, doing things at this pace might not be fast enough for many people who need all the features right away.
There are 2 ways to work properly with neovim. Either like you described, fully customize it yourself and don't put things you don't understand. Or just go for a proper project where everything is already setup for you and you don't have to touch it beyond very minor changes like key bindings. Both methods are clean.
🎯 Key Takeaways for quick navigation: 00:00 🖋 The speaker, a long-time Vim user, acknowledges the effectiveness of Vim's text movement commands for navigating text. 00:29 🧐 Despite Vim's strengths, the speaker, who is relatively new to coding, is struggling to adapt Vim for their coding needs. 08:43 🎮 The speaker highlights a configuration tool called "Kickstarter" that simplifies Neovim configurations for beginners. 16:13 🆚 The speaker explains why they chose the open-source editor Kate over VS Code for their coding and writing needs. 19:45 📝 The speaker emphasizes that the choice of an editor should align with the user's experience level and workflow preferences. 20:14 🖥 Learning keybindings and configurations can be challenging, and some tools make it easier than others. 20:53 🤔 Learning Lisp can be its own adventure, and it's different from learning languages like C. 23:02 🕐 Mastery in programming takes time; it's not a quick process, and patience is essential. 24:32 🙏 The journey of learning and improving is important, and support from the community can be valuable. Made with HARPA AI
You always say lua is a very simple language, and that is true for most of us who have years of coding experience and just pick up lua to configure their editor. But for someone who is self admitting to being a noob, with a few days/weeks/months of experience with programming in general, it's still a huge leap.
I started out programming with Gedit so I can definitely relate. Gotta respect having tried something and deciding it’s not for you. In this case there’s just very little benefit for simple Python and Bash scripts to have an LSP or linting.
6:05 Well, in Lua you don't actually have index-based arrays. They are associative arrays, or, as you call it, maps. So, if you want to, you can start your "arrays" with -1.
This is true, but requires you to define each key manual, as well as breaking all the built in functions (like ipairs). The language constructs (instanciation, table.insert, ipairs, etc) all assume 1-based indexing
7:15 Regarding VB's index 1 or 0 thing... That applies to classic VB - pre dotnet. In VB, you define an array by the indexes, not the number of items. So defining a 10 element array could be done like this *Dim numbers(0 To 9) As Integer* The full syntax had both. If you left it out it would assume 0. So, if you did this, *Dim numbers(9) As Integer* and hadn't changed the base, this would be 0 to 9 and would contain 10 elements. Alternatively, if you were nasty you could do this *Dim numbers(1 To 10) As Integer.* For this reason, traversing an array used LBound and UBound to determine the lower and upper bounds of an array. Since .NET, it still has the option of the full *(0 To 9)* syntax but you can no longer specify what the base is. It will always be zero.
Don't forget that in classic VB (and VBA) there is the Option Base 0|1 statement to control the implicit base when the start index isn't specified - I think that was the full meaning behind saying VB has both 1-based and 0-based indexing. Dim Numbers(10) can give either a 10 element or 11 element array depending on what this Option is set to.
@@Acorn_Anomaly Exactly. It was from the original BASIC. That's how I started my programming journey... I thought I was learning the basics of how a computer is used and later realized that it was a programming language
@@chrisgbkOh yes. Thanks. I forgot to include that. That kind of fit in with the rest of the Options that VB/VBA had... Option Explicit to decide whether or not to declare variables before using them, Option Infer to determine whether or not it infers the type if not specified in a declaration and assignment, Option Strict to cast off all restraint and essentially become a dynamic language (especially when paired with Infer Off), and Option Compare {Binary|Text} which determined how to compare strings
@@FabulousFadz lol I did the same thing, although not the original basic probably. I just googled "basic programming tutorial" before I knew anything and started following instructions lol
Every year or so i try to use vim as my development environment for a few weeks. Without fail, i always go back to vscode with vim keybindings (with a few custom bindings to enable panel navigation). It's just a better, more polished experience for me. I wish it wasn't electron, but it just works and it's fast enough on my machine. I've yet to find a feature in nvim that makes it worth the friction and wonkiness of switching.
It took me about 3 months of using neovim with telecope/harpoon/treesitter/fugitive/tmux and nothing else to click with it, but after that i can't go back to vscode especially for the larger projects at work
@@jesse9999999 why though? What is so much better? Genuine question. I've tried all of those things and nothing stands out to me as being that much better than the equivalent solution in vscode.
I am someone using vim since ~2005, i used to be vim fanatic dailydriving eclim (which was a frankensteinian combination of vim and headless eclipse long before treesitter and lsp). But I still struggle finding my way back to neovim as an IDE from Jetbrains world due to more or less same reasons as the author of the video. Building from scratch feels too much to learn, prebuild distributions feel somehow alien :)
I think there should totally be an nvim package that gives a GUI interface for hotkey/LSP stuff. Like it just generates a lua file that you import into your own config file. The problem for beginners seems to often be the easy things (checking and changing hotkeys for example) are harder than they expect. Slap a GUI interface on it that presents you with a few key options and I feel like a lot of that disappears.
Well you have which-key that shows you what hotkeys you can use when you start using one, and you also have Telescope that can search all Neovim hotkeys by keys or by description. Those two things really helped me learn all the keymaps. Not sure what you mean by GUI for LSP stuff though.
I left vim around a year ago for a reason I personally never heard of before so I guess that makes me *special*. I really dig coherency and unified experience and I get tired of switching my mind from working with vim-motions and modes to any other page navigation or text editing that other programs and websites use that I have to use occasionally. Of course I could get a window manager with vim-motions, get a web-browser with vim-controls, page readers etc but clearly the industry is not moving towards embracing vim-way of everything and if everything is not using it - I'm not using it either just to keep my head in one mode across all apps and sites.
I have used Vim, Emacs, Notepad++, Visual Studio Code and full fat Visual Studio. I have used Jetbrains language specific editors and even tacked lines of code to the end of a file with echo. While I can understand why people like vim motions, I did typesetting when I was young and don't really notice a *huge* difference and wonder if people are trying to code on keyboards without a full set of movement and macro keys, because Vim is aggressively mid. Yes, Vim motions themselves are fast, but as I jump between projects in all kinds of environments, languages and toolchains, I just use whatever the prevailing winds say to use. Getting code delivered is the goal, not forcing a client into a new workflow to suit my editor preferences.
I spent 2 years watching Prime teaching us how to use Vim, then how to use Nvim. Then I've learned how Linux works. Today I use AstroNvim and I'm really satisfied with it. You really need to understand stuff but once you do, you have perfect IDE for mobile, tablet, desktop, server. It's a journey you have to walk in order to experience greatness.
I always use Kate too. On Linux, MacOS, and Windows. Its an advanced text editor, that dips it toes into some IDE features, such as LSP support. It also has a vim keyboard mode.
I don't get the whole vim vs kakoune/helix thing. It's like comparing tangerines and oranges, slightly different but compared in context of every fruit they are almost the same. I started out with vim and fell in love with the concept of modal editor and vim motions. Then I started using it for programming and started really customizing it. My first try was overwhelming (I'm this sort of person that likes to do things from the ground up, so I wouldn't just copy someone else config). I'm sure if I spent some more time on this I could achieve my dream config, but I decided to look at some alternatives. So I found kakoune and one again I fell in love. It uses a lot of the same familiar vim motions but the main selling point is that integrates vim's visual mode into your usual workflow. Sounds weird, but if you try it, it hopefully will make sense. When I was a vim noob I used visual mode a lot and it felt like it was slowing me down, because it wasn't well integrated with everything else. I get that, if you have 10-20 years of vim experience you can do all of your most complex selections just chaining vim motions, but for someone at my level back then kakoune felt more intuitive and made me faster. Second perk is that kakoune is newer so it doesn't have as much config options as vim while still providing a lot of freedom by scripting. I got a config that satisfied me just after one day of screwing with it and some scripting. Oh, and I got lsp working first try, something that I couldn't achieve on nvim (it still were early days of lsp on nvim). Speaking of nvim, when I first heard about it I had really high hopes of it being the editor that I was looking for but it turns out the main focus of the project is to "clean up the codebase" make it more maintainable without breaking backwards compatibility. So I decided to stick with kakoune. And then I found helix and I can say that it has a huge potential but these are still the early days for what this project tries to become. It's usable out of the box, preconfigured lsp (even java, which is notoriously hard to get to work), experimental debugger support, etc. Over last couple of months it got to a point that it's so stable that I use it daily. What I really miss is some way of scripting of plugin system, but that is in the works too. These days I use helix and kakoune interchangeably, but I still feel comfortable with vim when I use someone else's machine. So, yeah, at the end of the day all those editors are more similar than not, but the devil's in the detail and which is the best ultimately comes to personal preference.
VB may be index 0 or 1, but VBA is index 0 AND 1 and 0 OR 1. Declare an array in VBA, and it indexes 0 or 1, depending on an optional Option Base statement. Default is 0. Capture a range of cells into a variant array, and it will always start with index 1, regardless of Option Base.
7:15 Yep, the first week I was forced to work on VBA, it got me so confused, I've had this weird off by one error that just couldn't get my head around, until I realized that array is 0-indexed and freaking collection is 1-indexed.
One of the things I dislike about coding with Neovim and Lua is that sometimes things are zero based (api functions) and sometimes they are 1 based (lua).
1:21 Many people can benefit from using a text synthesizer such as vim, these come to mind off the top of my head: DevOps? Ops? System Administrator? developer, lawyer-, journalist-, or medical- student? Other text intensive studies?
Lol, I use Helix, because when it came time to transition to a Modal editor, I just found Helix's movements more intuitive to myself, and Vim's kinda eh. I also had trouble setting up the Vim plugins I wanted, which was a shame, and right now I'm just waiting on Helix plugin system to drop.
As a systems admin its a bit odd to me that everyone believes only devs have professional use for linux. I do write script alot either with bash or more commonly these days ansible. Writing code is not my primary function, but I have spent my entire career in a linux environment.
Kate is really great for programming editing purposed, plus Kate can use vim keybindings without plugins. Problem with kate is with... LSP. It have sometimes few issues, like there's no way to have more than 1 LSP running for language in Kate, even multi-lsp-proxy don't work.
Kate is my text editor and has been for a long time! I even kept using it after toying with some KDE 3 distro and went back to Windows. I did not see that coming. I thought I was the weirdo because people don't even know what kate is. But seriously, kate has come a long way in the last couple of years, and it's worth a look.
My biggest problem with vim/neovim and emacs is that, they both are examples of software written by people who aren't aware that in the wild there are some other language, not just English. and people use them, with their keyboards. It's not trivial to make keybindings work well in different layouts. Situation is much better on emacs side, solution is about 20 lines of elisp, on vim/neovim you need to install plugin, also there's several pages long article about how that plugin was born. Plugin for feature that should be just an option in editor config, like in 4coder editor, where you can just set bind_by_physical_key switch, and have little to no problems with keybindings in different layouts. And He-Licks has exactly same problem.
0:16 I used kmonad to create a layer for movements and I'd argue it's better than vim's (though I gotta admit I haven't tried vim). 1) As I understand, in Vim, you need to _switch_ to a different mode, and then start moving. I configured my layer so that I can _hold_ [alt] and start moving. I think it's faster to hold a button, than to press combination before and after you moved the cursor. 2) I moved all the modifier keys to [asdf], right under my left hand so I don't have to twist my wrist. 3) It works in other places outside the editor, e.g. selecting search autocomplete or typing this comment.
@@brinckau Those can be configured in most ides. Jump to the end of the word is usually shift+right/left. I also have alt+arrows for moving the selected lines, alt+shift+arrows for copying up/down and some other. (note: alt, shift, ctrl and super are mapped to my left home row). For jumping 10 lines - I implemented that in kmonad, it presses the arrow 10 times.
Is it the objective differences between zeroth index and first index that are important to you or is it mostly just that you're used to it & it's hard to adjust?
Do you guys use vim motions for general text editing? I've struggled a bit with Vim motions on Overleaf, but I can't tell if it's because their implementation makes some very basic things hard.
My general text editing is always in vim lol. If you're talking about writing text messages/comments/emails, then it's not editing - it's writing. For LaTeX I would configure neovim instead of using online text editor, though.
I use it for most of my text editing these days. But I believe the real reason I grew to love it is because I've started to use more command-line programs in my day-to-day desktop use. It's hard to appreciate Vim when you're barely on the terminal, and just clicking things with the mouse all the time. But if you're already used to doing most things on the keyboard already, it absolutely feels nice to *not* have to open a big and heavy IDE or text editor just to edit some text. It's just three letters on the terminal, no startup needed.
Kate seems awesome. If I wasn't using a terminal editor like vim/helix I would give it a serious try over sublime/vscode in the mid-weight editor+lsp slot
As a helix user, I don’t appreciate being called out like this 😂 No, but seriously, it’s personal preference. Helix just makes more sense to me, but I get the appeal of vim
@@prerit714 it has something similar and very simplified, the major issue for me now it has no plug-in system since it's relatively new to neovim. But it does the job for me, so give it a try, read the docs and see if it serves your needs.
@@prerit714 no, helix is based on Kakoune, which is an experimental editor made to re-think how terminal-based editors work. Helix and Kakoune primarily work on the notion of “select then act” rather than vim’s “action then range”. It’s way simpler and doesn’t have all the fancy plugins and things vim has, but it’s written in Rust, which is great for me in particular because I can just pop the hood and tweak it without worrying about accidentally causing a segfault or resource leak
1:20 growing up I really liked tinkering with the OS but I don't like how programming feels, I don't like to simulate a for loop in my mind or thinking if the strategy pattern would be better in these files of code
Honestly, for my workflow Vim and Emacs are the only options (in large part because said workflow relies upon good old tab completion for switching between open files and using dired/the e command for opening files). The only reason I moved to Emacs for anything more than editing configs is that it seems to just have everything I need built in or easy to install (that and doubling down on my use of GNU Guix to install everything I need), from LSP (Eglot) to good autocomplete (Company and Ivy), terminal integration (eshell), and the best Git support I’ve used (Magit). If I didn’t edit code in such a manner, I’d probably be using VSCodium or Lapce.
I've tried using Lua for config and to really be useful it feels like it needs a lot boilerplate. Is there any library that makes it more straightforward?
The one thing I'm not into with vim is hjkl. I have a custom keyboard setup where I have a function layer that makes rsdf the arrow keys like WASD. I still don't have to move my hands off the home row and it's more natural to me.
That's the one thing a lot of people tend to ignore. They say that hjkl navigation is better. But what they mean is, it's better than the arrow keys in a normal keyboard. It certianly is, but if your keyboard isn't stupid, you can make it even better. The fact that h requires moving your index finger to the left as well is just bad. That sideways finger motion is one of the least comfortable typing motions for me.
@@Jason-xw2md These motion keys are not very intuitive from a positional standpoint, especially to people familiar with games. w/b/f/t also just seems scattered around the keyboard at random. Since these keys are some of the most heavily used, shouldn't they be grouped together closer to homerow? lol The first thing I would do (when I get around to learning how to config Neovim) is immediately changing the keybindings to something sane lol
I just made an emacs config and it’s actually easier than vim. The startup is not instant but it’s still < 1 second which was shocking! Also magit is amazing
(use-package evil :straight t) Emacs configured Yes, emacs is much easier to configure. All the stuff that you need astrovim and lua jammed in is built into emacs
Neovim config is a bizarre experience. That's why I hope the Vim project will not be abandoned after the passing of Bram - it works everywhere, is actually quite easy to configure and has sane, battle-tested and cleverly thought out conventions - an area where I feel nvim is still struggling. Right now I decided to maintain two configs. My vim one that has grown over the decades for daily editing tasks, and a nvim variant that's used on larger projects to benefit from LSP and Treesitter infrastructure.
@@jocm99 When I want to use an IDE I go for Intellij. It's by far the best option for Java and Kotlin. But I *still* find myself going back to vim because I've used it for so long that it became second nature. Fire up a shell, run vim and start editing. It's a machine made for shredding text and it simply excels at it. So I find it quite natural to want some of the quality of life features known from IDEs to be available for n/vim. With the more elaborate configs it does seem to have a slight taste of IDE-envy, especially those that make editing more cumbersome by introducing various dialogs, extra-windows and whatnot and end up looking like a vscode clone. Well, what can I say, vscode seems to do something right when quite a few people like to replicate the experience in a shell. Configs became a hassle with LSP and Treesitter and the effort to integrate them into autocomplete, folding etc. But you get quite the value add for your troubles, so I say that's fair game. Last but not least, I actually do subscribe to the idea that Unix itself is the IDE here and vim is but a part of it. To me it's quite undeniable that vim meshes orders of magnitude better with the rest of the system than any given IDE I know of.
1:20 Welp, as someone, who holds CCNA, CCNP, CCiE, COMPTIA A+, NDG Linux, as well as couple Cyber Security certificates, casually writes scripts in python to help with networking too, I can tell you that Linux is a fun tool for us - net admins too 😁
I acknowledge that experienced vim users look like wizards. However, I've never worked on a project where if I was x1.05 faster, it would have changed anything. And, I don't think such projects exist. If they do, then I would not have wanted to work on them anyways.
what? Vim keys ate not complicated. I'm not even a super fast typist and I beat every most of my monkeytype addicted coworkers that don't know vim at text editing. being able to edit text efficiently drastically reduces the friction between your thoughts and the computer.
I worked on a project that used batch scripts that created bash scripts for deploying to the server from Windows and that too would create another bash script that would be deployed to that server. The code they developed was Python, and questioned why they didn’t write all of that in Python to have a cross platform solution and keep the bash script in the file, with any values being injected using Python.
I went through the whole thing with no vim ide etc a few years ago. I cbfd maintaining it. I’m happy with vscode and vim bindings now. Just works well. Only have to worry about my custom settings file and that’s it.
Kate is nice in that the typing is very responsive in comparison to most gui editors. I use vim and or emacs myself but when my wife wants to code together and she even looks at my screen she pukes and passes out. So I conceded and use vs code for pair coding which is usually bash, sorry in advance for writing a lot of bash.
about GUI vs customizing: in Kate press Ctrl+Alt+i, type keyword you are looking for... (it's searchable list of menu items, actions, configuration, etc...) Kate is KDE text editor, somewhere between full fledged IDE and simple editor (KWrite is editor component part of Kate compiled as separate simpler text editor, Kate is extended text editor, KDevelop (using KWrite and parts of Kate too) is full IDE). Kate is now available also for windows BTW, although why would you cherry pick only great text editor and miss on the even better desktop environment with better OS? (KDE5 and Linux I mean) Makes no sense to me. (may be Stockholm syndrome, I'm now using linux and KDE for over 15 years on all my machines)
This guy is a gem. I love all of his videos. He is honest, genuine, and just comes across as a fantastic human, through and through. I do not like that he hides his code. Humility is good, but it can be a detriment to learning as well. I honestly think hearing this broke my heart, as the development community has its roots in assholary, and it was often celebrated and domain intelligence was often passed of as authoritative as so many systems frameworks, and thought patterns were just trends dressed up as some sort of theory of everything. Trashing a newbies, or another person's code, is like trashing artwork in that we often do not know the purpose, personal thought modeling, and the constraints the code is written in. Yes, code can be good, and it can be bad - but feedback can be good, or it can be terrible. So terrible that it is a detriment to the codidng community as a whole. See stack overflow, Debian dev channels circa mid 2000s, and well, a host of anything online. It sort of just pisses me off that chad cliques and dunking are such a long lived and solid tradition in coding, software engineer, developing, or whatever the COTM wants to label it. [Chads of the moment]
Index by one is actually better if you're not used to index by zero. Say you have an array of length 5. What's the index of the first element? 1. And the word "first" matches the word "one". What's the index of the last element? 5. What's the length of the array? 5. There's no mental translation required, getting elements is as natural as counting. Indexing by zero exists because of the way computers are designed, not the way people think. Personally I think that since programming languages are created primarily for the benefit of people to write in them (otherwise, just write in raw hex or binary, it's all the same to the computer), it makes more sense to design programming languages the way people think. Unfortunately, engineers have a terrible tendency to prioritize what is easier for them to implement rather than what is easier for people to use.
Nvim is hard because you need to take time to develop your config, in addition to learning how to write code. IDEs and editiors give you nice helper wheels until you’re ready. Took me about 30-40h of offline learning to get Nvim setup right and I’m only now starting to feel more productive than in VSCode (I knew how to program at that point already tho).
Don't worry, vi(m) will probably stay your friend on the command line for the quick jobs. Be it a git commit text, be it a small change in a config file. Even the smallest embedded Linux board with a slow RS232 connection comes with vi.
For notes I really like Obsidian. The combination of search options, slideshows, Mathjax, Mermaid diagrams, markdown, image embedding, and Vim key bindings(!) is just 😘
This is exactly what I feel like. I am a Linux support engineer and vim motions is a blessing when you are troubleshooting or editing files in a remote server. I use neovim for my macbook and personal linux server and its amazing. But I am a noob at programming and as soon as I use vim/neovim to code, I do not feel very productive. I feel there is too many things to learn about neovim itself when I do not have much time to learn and program in the first place.
a while back I had to use the ancient Borland Delphi straight from the year 2000 and if I remember correctly it had index 1 for Procedures and index 0 for Functions. no, it doesn't make any sense.
In general index 1 makes sense because it's the first element. What made no sense to call the thing you access arrays with an in c an index. There it is the distance to the start and we usually call that an offset (except for arrays).
@@vorrnth8734 it's...an offset from the beginning of an array unless for arrays? what are you talking about Borland Delphi didn't even use C it used Pascal.
I don't think vim is superior, but I use it 90% of the time every day. Hitting q and turning on recording is a frequent PITA. Trying to quit with multiple buffers opened is a frequent PITA. Regular expressions being weird is a frequent PITA. Trying to undo with capslock on is a frequent PITA. Cut and paste with the mouse between vertical split windows is a frequent PITA. None of that matters, because what vim is is an addictive experience. It's an experience of instant gratification. I use vim because it generates a sequence of dopamine hits.
maybe this is like some edge case (or i'm just misremembering because it was so long ago and brief) but when i tried learning lua for a bit, whenever i searched up any questions about even basic stuff, 99% of the time i would just get some roblox developer forum posts as results or a stackoverflow result which is semi-related and from 8 years ago
The KISS mentality from the Neovim setup videos awhile back really made it easy for me to get something actually usable with real working completions. It also helped me realize that using ALE and vanilla Vim just wasn't a real option if I wanted an experience that would actually be comparable to VSC and worth a switch.
To answer your question of why some of us non-developers veer towards Linux. I can only speak for myself here, but basicallly 1. I always like messing around with computers from my first interactions with a computer in the late 80s to now. The terminal was a very early memory of computers, and a chance to go back to that sense of childhood discovery 2. I'd been wanting to leave Windows for years and the pandemic gave me the time and space to finally say 'fuck it, i am a do this yolo'. MacOS was an option but I didn't like - and I still don't despite using Macbook pro for the last year - the Apple philosophy of 'you don't need to know' when it comes to giving users a chance to customize their computing experience 3. Linux makes me fall in love with computers and computing. There is an almost childlike joy to it that I don't get when I am on Windows or MacOS.
I do agree with VSCode customization being horrendous, but i'd counterargue that we focus too much on customization. In the end if i want to get shit done, there are times when it's better to have preconfigurated env where i can hit 1 button and get stuff done. Othertimes sure being able to see "everything" might be nice
bro I just want to write my keymaps in a text file, VSCode over complicates so many little things like these thay I'm just uncapable of enjoying the conveniences it adds. I have a single init.lua with like 300 (significant) lines of lua code and it does everything I want
Been learning vim all summer. Much about it I like. But it takes a long time to really feel productive with it. I have to have a vim cheat sheet open all the time. Today I went back to VS Code and it felt good.
From stackoverflow: Lua is descended from Sol, a language designed for petroleum engineers with no formal training in computer programming. People not trained in computing think it is damned weird to start counting at zero. By adopting 1-based array and string indexing, the Lua designers avoided confounding the expectations of their first clients and sponsors. Although I too found them weird at the beginning, I have learned to love 0-based arrays. But I get by OK with Lua's 1-based arrays, especially by using Lua's generic for loop and the ipairs operator-I can usually avoid worrying about just how arrays are indexed.
yeah people blow it out of proportion. honestly kind of your problem if you can't add one lol. It's like pi vs tau, it turns out that the "niceness" of one over the other kind of balances out. in a high level scripting language you don't have to worry about indexing via memory offsets, so it really doesn't matter.
I actually feel that kickstarter is too much. I appreciate that it exists though, and I use it as a guide. I had a super minimal vim config. I basically just want language tooling, search and a quick way to pop from file to file. I had keystrokes set like I like them in vim, but kickstart, though great, is too different. I decided to slowly move to neovim and have half my config in vim and half neovim. And, I’m staying minimal because the hotshot neovim plugins seem to die often.
“I can give it up any time I want … but I might still use it to edit a config or two” He’s gonna be right back at it in two weeks. I use “cheatsheet-driven development” to learn these things, which means I print out the ref cards and keep them out so I can practice new things. Vim was hard for me (about 10 years ago) and it’s easy to get stuck in a rut with the same 5 binds over and over again. Kates not that bad though. It’s just there and it’s got a few languages set up from the get go.
1:20 I've been programming for 10 years (not counting shell scripting), paid for 6 years. Linux user for 26 years, plenty of those was spent using vim.
I think if Spacemacs (Emacs with vim keybindings and a menuing system accessible from pressing in vim normal mode) had been mature 20 years ago, VS Code wouldn't exist. It's that good.
I know all ins and outs of vim and i have been using it for six years but now that i actually have to use it to edit 3 files in my html css js little project i realize that using it isnt as rewarding as juzt letting everybody know that i use vim. Also i use vim guys.
You just split your screen into three windows and that’s it. Also you can make forth one for a terminal and live server logs. No plugins required, this is all out of the box Vim.
Long time Linux user, and also not a programmer. I did admin Solaris boxen back in the day though. Aaaand, Emacs/ LaTeX for document prep, newsreading, mail etc.
I've learned a little Vim in case I need a command line text editor that's better than Nano. But I can't stay in it long term either. I'm using Notepadqq in Linux on my laptop and Notepad++ in Windows on my gaming PC. All my compiling in Windows is actually done on Arch in WSL2. The only reason I'm even using Windows is because the vast majority of games are made for Windows only. For the moment, I'm willing to put up with Windows a little more than all the quirks many games require to run on Linux. I'm no programming professional, though. I'm closer to a beginner. I know some C++ and Rust, but I'm more proficient with Python as the software Sagemath is built on Python; my primary hobby is higher mathematics. I've loved Linux for a long time now because of the freedom I have with it.
"I am a long term Vim user"
*Linux poster on the wall*
Story checks out
Shout outs to the 5 or 6 people who use Vim on Windows
@@KettLovahr There is a word for those people: Masochists.
@@KettLovahr I am currently torturing myself in this way, and it ain't going well chief, why is everything in Windows is so much more pain... (Can't use Linux for remote day job due reasons which can't be fixed, used to use full time linux otherwise /:)
@@koool56Without WSL2?
@@KettLovahr I think it integrates with the Widows cmd instead of emulating a Unix shell. Which, if you're used to using shell stuff...
This guy is totally correct, getting vim IDE setup if you are new is like getting a PhD, especially when you compare it to what VSCode gives you first out of the box and even more so after you install the most popular/suggested extensions
Having a PhD in Vim would be nice
Definitely this. I gave vim a small kick of the tires, like really small, but I realized that in the time it would take me to even understand the basics, and setup the tooling for various languages, VSCode would have had me hours deep into actual work.
It feels like there's increasingly this "Vim is for the kewl kids" attitude that's popping up while people simultaneously "oh but use whatever you're comfortable with" and its kinda weird and a bit annoying because it feels like increasingly you are judged for your tools rather than the code in your heart.
Its further compounded with the idea that when people talk about vscode being slow, I realized they're all using it wrong, which sounds like that Iphone commercial, but I mean seriously. They all miss the paradigm which is that you open up the workspace, it takes 20 seconds for everything too boot up, and then its just as fast as anything from there, with just as much shortcut configurability, but with none of the headache.
With VSCode, I only learn the shortcuts I use frequently. Maybe I'm just not built that way, but I just can't imagine remembering what feels like 50 shortcuts you need to remember simultaneously and intuitively at any given time to be proficient in Vim, and it's just like, I feel like there is better use of my working memory, of which I have very little.
So like yea, I don't doubt there are some people out there for whom remembering that many shortcuts is a breeze, and they work on remote servers so much where for some reason they wouldn't want to use VSCode remote that VIM is attractive there, so I won't yuck their yum. Their yum is just yuck to me.
@@BeefIngot that's the exact reason I gave up on vim/nvim and moved to helix. Still no plugins, but amazing out of box experience
@@BeefIngot The problem with the remote servers argument is that people trick out their vim installs with tons of plugins and keyboard configurations. Which won't be present or set up on a remote box, so you're back to bog standard vim. As for VSCode being slow, maybe on a ten year old potato. It's fine on anything even remotely modern. And, yes, VSCode is for working inside projects and project folder structures, not fiddling about with dispersed config scripts or continuously cranking up from the command line.
It's unfortunate that this is true. It's nice that atleast neovim has done a lot of good things when it comes to this compared to regular old vim. Atleast neovim has lsp and editorconfig out of the box
it's kinda mindblowing to see a person who is into linux and have years of experience with vim but only starting his programming journey, usually you expect to be the other way around
That would have been true maybe 10 years ago. A lot of people only use Linux now to spin up VMs for web hosting etc, so don't do anything particularly technical with it.
right??? I've been programming for over 10 years now and I still can't bring my self to dive into vim. I just love my jetbrains ecosystem to much.
It's common for freetards, that's how I got started.
@@dooZyz oh mr jetbrains over here look out 🙄
I'm coping 😢
Yeah, for me it was first programming in vscode in windows for a few months, then using the vim extension in vscode after seeing prime's frontend master course on vim, and after that it was smooth sailing to having a configured linux setup
"helix these nuts" thanks dude, I can't unhear that.
I'm going to make a tee shirt.
I get this guy. Setting up a good vim experience the first time around is really tough. And there's a matter of priorities, maybe he'll revisit neovim again one day, but for now he's prioritizing learning to code with the tool he could find that helps him to do that. That's what it's all about. I thought it was a great video.
The annoying setup made me learn helix instead. My helix config after 3 months is just 10 lines. (50 including the lsp setups)
I started neovim a couple of weeks ago. Using it to learn C. It seems fine to me. There is syntax highlighting auto indenting, pretty much all that is needed for learning a language. I just slowly modify things as I go.
The real mistake is thinking you need an IDE for learning. Code completion with syntex correction doesn't help you learn. Typing and bug fixing does
I agree. And I feel that the defaults could be better.
I am currently moving new projects to neovim b/c neovim works for me now, but honestly it is slowing me down because of "how do I do this?" or "well, this works *almost* the way it should".
I can't believe as a Linux Noob and beginner programmer that I was sucked into VIM as an IDE. Ultimately I love VIM as an IDE for webdev, but anytime I try to do anything not webdev related in newovim it just doesnt work as well and I run into a million little issues. VSCode with a Vim plugin is almost just as good
@@neilcraig2593 i use vim keybindings in intellij because I just like that the debugger works with 0 configuration. renaimg stuff is just easier than any neovim config I have tried (i.e. renaming the file renames the class in java, when I used to write java)
I use neovim with lots of config as well and trying to make the shift to it when I write go but debugging is a pain in the ass to set up and have it work, sometimes I'm tired midway and feel like i haven't gotten to fix the bug since half of the time is spent on me learning how to use the tool, no bueno.
I knew it was Kate because I'm a KDE fanboy and stumbled across one of his videos fawning over Kate before. Kate is honestly pretty darn neat: integrates well with LSPs, is lightweight, you can enable Vim motions without needing a plugin, has a decent project manager, has nice visual Git integration, etc etc. It basically feels like "VSCode with the plugins I need but without the BLOAT". It's my second editor of choice after NeoVim.
If you are a Mac fanboy Nova provides a similar experience in that it doesn't have all the features VSCode does, but it does a lot of things OOTB and everything it does is done well.
I was a Linux guy before I got into software. It's because I liked tweaking things, I was heavy into Windows customization around XP era, and then when Vista came out, everything sucked, and a friend had me try Linux Mint. My gateway to development was literally ricing my desktop.
Can you give examples of ricing your desktop? I feel like i want to do the same but cant really think of things to do
I love Vim, but I stick Intellij IDEs, which is basically at the opposity spectrum of IDEs compared to Vim. And the reason is that Vim is really amazing if you need to switch files and dump code in a fast workflow. But once you get to a big codebase, you'll spend most of your time staring at the screen while trying to figure out how to add/fix things (especially if you are not one of the creators of the codebase), which is where I'm at now. The only thing I never leave is Vim keybinds (available in most IDEs).
I have exactly the same situation
Use what works for you
Fully agree with you. vi user since 1995 (!) but modern programming jobs require more than just the good editor. Every sensible IDE has a vim plugin and then you're set for a nice experience. Integrated stepping debuggers / breakpoint setting, jumping to and from files, starting stuff, managing a set of docker containers, tailing logs at the same time, etc. You're better off with the intellij family of IDEs.
@@MeriaDuckisn't this going to be 100% better with Vim + Tmux (for switching between log tailing, debug, run something, etc.) if you're on Linux? And jumping around files using grep too (you search specifically for functions / set up something like Harpoon)
Just curious, mad respect for being in tech for so long!
Exactly. All the power of an IDE with the bindings of VIM. I’m not really interested in maintianing my own IDE, so I just lay Jetbrains. 100% worth it just for the refactoring
I was in the same boat last year with the vim config rabbithole.
Since switching to AstroNvim I could not be happier since the awesome Astro community provides plug and play configs.
Astro is what I wanna start with too
Astro, LunarVim and all those preconfigs are really good to get a full blown IDE. I've tried them but kickstarter really locked me in. Made me capable to code without feeling bloated. I've added a few things here and there just by reading the config and I love it!
Been using Astro as my Vim distro of choice for little over 2 months already, and it's been for the most part a smooth ride. I still have some issues here and there, but in time I'll get around to learning it well enough to (hopefully) iron out those kinks.
I started with LazyVim and soon as i started learning about neovim and the options and then popular plugins and what they do I identified what I liked and used and what I didnt. Graudally, I pulled all of the lazyVim defaults into my local config and removed all of the things that I felt like i didn't need and changed things to suit my needs.
I think this worked great! It allowed me to get started with a full feature IDE to still be productive and gradually reduce the "bloat" and configure things how I like as I learnt neovim itself
Truthfully, Kate is amazing for journaling/organizing text stuff. If you're too lazy to go full-terminal, Kate does a great job because Kate has sessions you can save and you're prompted at start with those sessions. You can also force Linux to start Kate at boot, so you can start your day with various organizational tasks.
It also feels like a fairly good text editor for simple stuff such as Python, so I kinda understand the guy.
is it better than obsidian
Kate is Notepad#
@@BlazingMagpie No that's Kwrite, Kates little brother
That's so true. Despite being so used to never using simple editors, kate somehow accidentally ended up being how i manage a lot of notes and reading code other people send me, and it just works. It feels like a simple "notepad" at first, but it's a hell of a lot more useful than the rest of the similarly featured "notepad"s out there, just because of the good ergonomics.
Asahi linux developers use kate @@BlazingMagpie
I don't give a flying f about helix being written in rust.. but I think what they did with their version of vim motions is more consistent and the space leader key with decent mnemonics (like spc-g-d go to definition etc) is just good UX. I think they genuinely managed to take that part of vim and make it better.. also, defaults are GREAT. Yeah, the customization isn't there but it's a damn good effort.
Seems like a chill guy, hope his programming journey goes well!
20:40 that is 100% true. I learned elisp for emacs (let’s say I learned the basics and still learn it) and in the beginning I took little exercises to learn. The first exercise was “return if a given year is a leap year”. And there I was, coding professionally at work for several years in C and Rust, knowing exactly how to do that mathematically, sitting in front of my screen having absolutely no idea what to hammer into my keyboard in lisp.
Well almost, at least I knew it had to start with a parenthesis
Ah yes, a senior rust dev with many years of experience in something that has only existed for a few years. Classic
This guy's channel is great, helped me so much when I was setting up i3 for the first time. Weirdly though, this video has made me take the plunge and switch to Neovim. Been considering it for a while now, but watching this, and having to deal with VS Code BS today was the final straw.
I actually empathize with this person a lot. Lately I moved over to an ortholinear keyboard, and started learning to use COLEMAK and all of the sudden I am a newbie in vim, though I have been using it for 15+ years. Everything because more difficult to learn (I wanted to start learning lua but not happening yet), so all with "choose your battles" kind of mentality. Most likely, the person will come back to neovim and programming with better foundations and less friction to add the personalization part of NeoVIM on top of the rest.
From someone who made this move, there are definite trade-offs.
It's great for the fingers and wrists.
But it also means things like vim are more awkward. Helping someone else in person when you need to takeover their keyboard is ridiculously difficult.
As for Vim, I got used to navigation keys where they fell on Colemak and it's not terribly inconvenient, especially since jumping further is more common anyway.
I'm being forced to switch to ortholinear because I literally can't type for more than 10 minutes on a staggered kb without wrist pain
I use split corne with colemak-dh. I recommended rebinding only mnei to hjkl. I learned vim before colemak. And it was hard for first 3 days maybe. I can cope, bare with hjkl on remote machine since for me not that often. But hjkl isn't that far appart on colemak tho.
@@darukutsu I am using dh as well, I chose not to remap those. After all there are plenty of other ways to move around that make movements in vim not only depend on those (and I have no intention to remap everything:) )
Also a Colemak-DH user who remapped, can’t say I regret switching to Colemak given my faster typing speed and complete lack of wrist problems. However, certainly makes things inconvenient. I ultimately decided to go with remapping hjkl since I felt like half the point of vim bindings was the home row. Definitely some trade offs like using vim bindings in other applications, either can’t use them or see if there’s a vimrc plugin I can quickly use to remap. I don’t commonly ssh into other machines but when I do I typically use distant.nvim for large edits (which ends up being nicer anyway since I get syntax highlighting and my other convenient remaps+plugins). Otherwise resorting to arrow keys in vi for really quick things.
If you're on KDE, Kate is an absolutely wonderful editor, and the vim integration is solid. I have a bunch of vids on my channel using it to write Python
One of the selling point of Helix editor was that it was "fast", which sounded absurd to me considering how responsive vim was. That is until i tried on of those prepackaged neovim distros - i think it was lunar vim. Holy shoot was that thing slow. Gona say - haters gotta hate, but i just love helix for what it is.
What’s made Neovim so enjoyable for me is a simple rule: never add something to my config if I don’t know how it works or what it does. I’m missing some bells and whistles but my config is manageable because I have added every plugin myself when I’m seeking a tool that does “X” that I need. However, doing things at this pace might not be fast enough for many people who need all the features right away.
There are 2 ways to work properly with neovim.
Either like you described, fully customize it yourself and don't put things you don't understand.
Or just go for a proper project where everything is already setup for you and you don't have to touch it beyond very minor changes like key bindings. Both methods are clean.
@@jocm99 what if I want it to be tho lol. its fun
This is really hard in the beginning, especially if you need good code completion.
🎯 Key Takeaways for quick navigation:
00:00 🖋 The speaker, a long-time Vim user, acknowledges the effectiveness of Vim's text movement commands for navigating text.
00:29 🧐 Despite Vim's strengths, the speaker, who is relatively new to coding, is struggling to adapt Vim for their coding needs.
08:43 🎮 The speaker highlights a configuration tool called "Kickstarter" that simplifies Neovim configurations for beginners.
16:13 🆚 The speaker explains why they chose the open-source editor Kate over VS Code for their coding and writing needs.
19:45 📝 The speaker emphasizes that the choice of an editor should align with the user's experience level and workflow preferences.
20:14 🖥 Learning keybindings and configurations can be challenging, and some tools make it easier than others.
20:53 🤔 Learning Lisp can be its own adventure, and it's different from learning languages like C.
23:02 🕐 Mastery in programming takes time; it's not a quick process, and patience is essential.
24:32 🙏 The journey of learning and improving is important, and support from the community can be valuable.
Made with HARPA AI
You always say lua is a very simple language, and that is true for most of us who have years of coding experience and just pick up lua to configure their editor.
But for someone who is self admitting to being a noob, with a few days/weeks/months of experience with programming in general, it's still a huge leap.
the angry birds poster in the background is way too distracting
at least it's not a waifu pic now that would be ultimate distraction jutsu
yo
Do you mean the mirror?
@@ea_naseerlmaoooo just made me think of the kid from flash gatz or whatever that channel is who went to wifu heaven 😂
@@omega_no_commentary nope, the angry birds poster
I started out programming with Gedit so I can definitely relate. Gotta respect having tried something and deciding it’s not for you. In this case there’s just very little benefit for simple Python and Bash scripts to have an LSP or linting.
My boy the Linux cast has made it!
6:05 Well, in Lua you don't actually have index-based arrays.
They are associative arrays, or, as you call it, maps.
So, if you want to, you can start your "arrays" with -1.
This is true, but requires you to define each key manual, as well as breaking all the built in functions (like ipairs).
The language constructs (instanciation, table.insert, ipairs, etc) all assume 1-based indexing
7:15 Regarding VB's index 1 or 0 thing... That applies to classic VB - pre dotnet. In VB, you define an array by the indexes, not the number of items. So defining a 10 element array could be done like this *Dim numbers(0 To 9) As Integer* The full syntax had both. If you left it out it would assume 0. So, if you did this, *Dim numbers(9) As Integer* and hadn't changed the base, this would be 0 to 9 and would contain 10 elements. Alternatively, if you were nasty you could do this *Dim numbers(1 To 10) As Integer.* For this reason, traversing an array used LBound and UBound to determine the lower and upper bounds of an array. Since .NET, it still has the option of the full *(0 To 9)* syntax but you can no longer specify what the base is. It will always be zero.
Also I'm pretty sure that's something it inherited from BASIC.
Don't forget that in classic VB (and VBA) there is the Option Base 0|1 statement to control the implicit base when the start index isn't specified - I think that was the full meaning behind saying VB has both 1-based and 0-based indexing. Dim Numbers(10) can give either a 10 element or 11 element array depending on what this Option is set to.
@@Acorn_Anomaly Exactly. It was from the original BASIC. That's how I started my programming journey... I thought I was learning the basics of how a computer is used and later realized that it was a programming language
@@chrisgbkOh yes. Thanks. I forgot to include that. That kind of fit in with the rest of the Options that VB/VBA had... Option Explicit to decide whether or not to declare variables before using them, Option Infer to determine whether or not it infers the type if not specified in a declaration and assignment, Option Strict to cast off all restraint and essentially become a dynamic language (especially when paired with Infer Off), and Option Compare {Binary|Text} which determined how to compare strings
@@FabulousFadz lol I did the same thing, although not the original basic probably. I just googled "basic programming tutorial" before I knew anything and started following instructions lol
Every year or so i try to use vim as my development environment for a few weeks. Without fail, i always go back to vscode with vim keybindings (with a few custom bindings to enable panel navigation). It's just a better, more polished experience for me. I wish it wasn't electron, but it just works and it's fast enough on my machine. I've yet to find a feature in nvim that makes it worth the friction and wonkiness of switching.
It took me about 3 months of using neovim with telecope/harpoon/treesitter/fugitive/tmux and nothing else to click with it, but after that i can't go back to vscode especially for the larger projects at work
@@jesse9999999 why though? What is so much better? Genuine question. I've tried all of those things and nothing stands out to me as being that much better than the equivalent solution in vscode.
I am someone using vim since ~2005, i used to be vim fanatic dailydriving eclim (which was a frankensteinian combination of vim and headless eclipse long before treesitter and lsp). But I still struggle finding my way back to neovim as an IDE from Jetbrains world due to more or less same reasons as the author of the video. Building from scratch feels too much to learn, prebuild distributions feel somehow alien :)
I prefer IntelliJ's IDEs over Visual Studio Code because they require less configuration. I can't imagine what would convince me to do Vim.
I think there should totally be an nvim package that gives a GUI interface for hotkey/LSP stuff. Like it just generates a lua file that you import into your own config file.
The problem for beginners seems to often be the easy things (checking and changing hotkeys for example) are harder than they expect. Slap a GUI interface on it that presents you with a few key options and I feel like a lot of that disappears.
Well you have which-key that shows you what hotkeys you can use when you start using one, and you also have Telescope that can search all Neovim hotkeys by keys or by description. Those two things really helped me learn all the keymaps. Not sure what you mean by GUI for LSP stuff though.
I left vim around a year ago for a reason I personally never heard of before so I guess that makes me *special*. I really dig coherency and unified experience and I get tired of switching my mind from working with vim-motions and modes to any other page navigation or text editing that other programs and websites use that I have to use occasionally. Of course I could get a window manager with vim-motions, get a web-browser with vim-controls, page readers etc but clearly the industry is not moving towards embracing vim-way of everything and if everything is not using it - I'm not using it either just to keep my head in one mode across all apps and sites.
I just wish him best of luck on becoming a programmer, seems like a nice guy.
I have used Vim, Emacs, Notepad++, Visual Studio Code and full fat Visual Studio. I have used Jetbrains language specific editors and even tacked lines of code to the end of a file with echo. While I can understand why people like vim motions, I did typesetting when I was young and don't really notice a *huge* difference and wonder if people are trying to code on keyboards without a full set of movement and macro keys, because Vim is aggressively mid. Yes, Vim motions themselves are fast, but as I jump between projects in all kinds of environments, languages and toolchains, I just use whatever the prevailing winds say to use. Getting code delivered is the goal, not forcing a client into a new workflow to suit my editor preferences.
I spent 2 years watching Prime teaching us how to use Vim, then how to use Nvim. Then I've learned how Linux works. Today I use AstroNvim and I'm really satisfied with it. You really need to understand stuff but once you do, you have perfect IDE for mobile, tablet, desktop, server. It's a journey you have to walk in order to experience greatness.
Wait, MOBILE?
I always use Kate too. On Linux, MacOS, and Windows. Its an advanced text editor, that dips it toes into some IDE features, such as LSP support. It also has a vim keyboard mode.
I don't get the whole vim vs kakoune/helix thing. It's like comparing tangerines and oranges, slightly different but compared in context of every fruit they are almost the same. I started out with vim and fell in love with the concept of modal editor and vim motions. Then I started using it for programming and started really customizing it. My first try was overwhelming (I'm this sort of person that likes to do things from the ground up, so I wouldn't just copy someone else config). I'm sure if I spent some more time on this I could achieve my dream config, but I decided to look at some alternatives. So I found kakoune and one again I fell in love. It uses a lot of the same familiar vim motions but the main selling point is that integrates vim's visual mode into your usual workflow. Sounds weird, but if you try it, it hopefully will make sense. When I was a vim noob I used visual mode a lot and it felt like it was slowing me down, because it wasn't well integrated with everything else. I get that, if you have 10-20 years of vim experience you can do all of your most complex selections just chaining vim motions, but for someone at my level back then kakoune felt more intuitive and made me faster. Second perk is that kakoune is newer so it doesn't have as much config options as vim while still providing a lot of freedom by scripting. I got a config that satisfied me just after one day of screwing with it and some scripting. Oh, and I got lsp working first try, something that I couldn't achieve on nvim (it still were early days of lsp on nvim). Speaking of nvim, when I first heard about it I had really high hopes of it being the editor that I was looking for but it turns out the main focus of the project is to "clean up the codebase" make it more maintainable without breaking backwards compatibility. So I decided to stick with kakoune. And then I found helix and I can say that it has a huge potential but these are still the early days for what this project tries to become. It's usable out of the box, preconfigured lsp (even java, which is notoriously hard to get to work), experimental debugger support, etc. Over last couple of months it got to a point that it's so stable that I use it daily. What I really miss is some way of scripting of plugin system, but that is in the works too. These days I use helix and kakoune interchangeably, but I still feel comfortable with vim when I use someone else's machine. So, yeah, at the end of the day all those editors are more similar than not, but the devil's in the detail and which is the best ultimately comes to personal preference.
Tldr
@@talananiyiyaya8912preference
VB may be index 0 or 1, but VBA is index 0 AND 1 and 0 OR 1.
Declare an array in VBA, and it indexes 0 or 1, depending on an optional Option Base statement. Default is 0.
Capture a range of cells into a variant array, and it will always start with index 1, regardless of Option Base.
Dear God 😦
Beautiful
7:15 Yep, the first week I was forced to work on VBA, it got me so confused, I've had this weird off by one error that just couldn't get my head around, until I realized that array is 0-indexed and freaking collection is 1-indexed.
One of the things I dislike about coding with Neovim and Lua is that sometimes things are zero based (api functions) and sometimes they are 1 based (lua).
Lua indexing at one is one of the worst language design decisions
Yea…. The think lua is a rather charming language but the indexing irritates me
16:00 - He could use Monaco. It’s open source and VS Code is based on Monaco. Both are better than Kate IMO.
1:21 Many people can benefit from using a text synthesizer such as vim, these come to mind off the top of my head: DevOps? Ops? System Administrator? developer, lawyer-, journalist-, or medical- student? Other text intensive studies?
Lol, I use Helix, because when it came time to transition to a Modal editor, I just found Helix's movements more intuitive to myself, and Vim's kinda eh. I also had trouble setting up the Vim plugins I wanted, which was a shame, and right now I'm just waiting on Helix plugin system to drop.
As a systems admin its a bit odd to me that everyone believes only devs have professional use for linux. I do write script alot either with bash or more commonly these days ansible. Writing code is not my primary function, but I have spent my entire career in a linux environment.
Kate is really great for programming editing purposed, plus Kate can use vim keybindings without plugins. Problem with kate is with... LSP. It have sometimes few issues, like there's no way to have more than 1 LSP running for language in Kate, even multi-lsp-proxy don't work.
Kate is my text editor and has been for a long time! I even kept using it after toying with some KDE 3 distro and went back to Windows. I did not see that coming. I thought I was the weirdo because people don't even know what kate is.
But seriously, kate has come a long way in the last couple of years, and it's worth a look.
My biggest problem with vim/neovim and emacs is that, they both are examples of software written by people who aren't aware that in the wild there are some other language, not just English. and people use them, with their keyboards.
It's not trivial to make keybindings work well in different layouts. Situation is much better on emacs side, solution is about 20 lines of elisp, on vim/neovim you need to install plugin, also there's several pages long article about how that plugin was born. Plugin for feature that should be just an option in editor config, like in 4coder editor, where you can just set bind_by_physical_key switch, and have little to no problems with keybindings in different layouts.
And He-Licks has exactly same problem.
0:16 I used kmonad to create a layer for movements and I'd argue it's better than vim's (though I gotta admit I haven't tried vim).
1) As I understand, in Vim, you need to _switch_ to a different mode, and then start moving. I configured my layer so that I can _hold_ [alt] and start moving. I think it's faster to hold a button, than to press combination before and after you moved the cursor.
2) I moved all the modifier keys to [asdf], right under my left hand so I don't have to twist my wrist.
3) It works in other places outside the editor, e.g. selecting search autocomplete or typing this comment.
But what about the many other movements, like "move down 10 lines" or "jump to next paragraph" or "jump backwards to the end of a word"?
@@brinckau Those can be configured in most ides. Jump to the end of the word is usually shift+right/left. I also have alt+arrows for moving the selected lines, alt+shift+arrows for copying up/down and some other. (note: alt, shift, ctrl and super are mapped to my left home row). For jumping 10 lines - I implemented that in kmonad, it presses the arrow 10 times.
@@splytrz Seems usable.
Is it the objective differences between zeroth index and first index that are important to you or is it mostly just that you're used to it & it's hard to adjust?
I love this dude. One of the first ppl i watched getting into Linux. Benn thinking about getting into neovim but also learning developing right now.
Do you guys use vim motions for general text editing? I've struggled a bit with Vim motions on Overleaf, but I can't tell if it's because their implementation makes some very basic things hard.
Yes, Vim for everything and GUI only for web browser. After a week of this mode anything outside of Vim will feel a pain to you.
My general text editing is always in vim lol. If you're talking about writing text messages/comments/emails, then it's not editing - it's writing. For LaTeX I would configure neovim instead of using online text editor, though.
Yes, wherever it is possible, it's so much convenient when you learn, you don't need to use the mouse everytime.
yes, vim motions are amazing for both code and text
I use it for most of my text editing these days. But I believe the real reason I grew to love it is because I've started to use more command-line programs in my day-to-day desktop use.
It's hard to appreciate Vim when you're barely on the terminal, and just clicking things with the mouse all the time. But if you're already used to doing most things on the keyboard already, it absolutely feels nice to *not* have to open a big and heavy IDE or text editor just to edit some text.
It's just three letters on the terminal, no startup needed.
Kate seems awesome. If I wasn't using a terminal editor like vim/helix I would give it a serious try over sublime/vscode in the mid-weight editor+lsp slot
Kate also Qt not webbloat
As a helix user, I don’t appreciate being called out like this 😂
No, but seriously, it’s personal preference. Helix just makes more sense to me, but I get the appeal of vim
I felt the same 😂 btw, helix is vim without the hustle of configuration.
Does it support vim motions?
@@prerit714 it has something similar and very simplified, the major issue for me now it has no plug-in system since it's relatively new to neovim. But it does the job for me, so give it a try, read the docs and see if it serves your needs.
@@prerit714 no, helix is based on Kakoune, which is an experimental editor made to re-think how terminal-based editors work. Helix and Kakoune primarily work on the notion of “select then act” rather than vim’s “action then range”. It’s way simpler and doesn’t have all the fancy plugins and things vim has, but it’s written in Rust, which is great for me in particular because I can just pop the hood and tweak it without worrying about accidentally causing a segfault or resource leak
1:20 growing up I really liked tinkering with the OS but I don't like how programming feels, I don't like to simulate a for loop in my mind or thinking if the strategy pattern would be better in these files of code
Honestly, for my workflow Vim and Emacs are the only options (in large part because said workflow relies upon good old tab completion for switching between open files and using dired/the e command for opening files). The only reason I moved to Emacs for anything more than editing configs is that it seems to just have everything I need built in or easy to install (that and doubling down on my use of GNU Guix to install everything I need), from LSP (Eglot) to good autocomplete (Company and Ivy), terminal integration (eshell), and the best Git support I’ve used (Magit). If I didn’t edit code in such a manner, I’d probably be using VSCodium or Lapce.
Where is the best place to learn vim movements?
Vimtutor
I've tried using Lua for config and to really be useful it feels like it needs a lot boilerplate. Is there any library that makes it more straightforward?
Iirc Ada lets you choose any number for the index to start at, for any given array variable
The one thing I'm not into with vim is hjkl. I have a custom keyboard setup where I have a function layer that makes rsdf the arrow keys like WASD. I still don't have to move my hands off the home row and it's more natural to me.
That's the one thing a lot of people tend to ignore. They say that hjkl navigation is better. But what they mean is, it's better than the arrow keys in a normal keyboard. It certianly is, but if your keyboard isn't stupid, you can make it even better. The fact that h requires moving your index finger to the left as well is just bad. That sideways finger motion is one of the least comfortable typing motions for me.
@@awesomedavid2012but why do you need to press h often? If you're using arrow keys/hjkl to move frequently, why are you using them over w/b/f/t?
@@Jason-xw2md These motion keys are not very intuitive from a positional standpoint, especially to people familiar with games. w/b/f/t also just seems scattered around the keyboard at random. Since these keys are some of the most heavily used, shouldn't they be grouped together closer to homerow? lol
The first thing I would do (when I get around to learning how to config Neovim) is immediately changing the keybindings to something sane lol
I didn't find it hard for geht used to hjkl but yes w and b not being next to each other is pain.. that's why I love oomotion so kuch
I just made an emacs config and it’s actually easier than vim. The startup is not instant but it’s still < 1 second which was shocking! Also magit is amazing
native comp + use-package. I ditched my doom emacs setup and won't ever go back.
No way is Emacs easier to configure than Neovim though. It doesn't get much simpler than Lua
(use-package evil
:straight t)
Emacs configured
Yes, emacs is much easier to configure. All the stuff that you need astrovim and lua jammed in is built into emacs
Kate would be less resource consuming compared to VS Code since it doesn’t use Electron and a whole web browser for a text editor.
Neovim config is a bizarre experience. That's why I hope the Vim project will not be abandoned after the passing of Bram - it works everywhere, is actually quite easy to configure and has sane, battle-tested and cleverly thought out conventions - an area where I feel nvim is still struggling.
Right now I decided to maintain two configs. My vim one that has grown over the decades for daily editing tasks, and a nvim variant that's used on larger projects to benefit from LSP and Treesitter infrastructure.
@@jocm99 When I want to use an IDE I go for Intellij. It's by far the best option for Java and Kotlin. But I *still* find myself going back to vim because I've used it for so long that it became second nature. Fire up a shell, run vim and start editing. It's a machine made for shredding text and it simply excels at it.
So I find it quite natural to want some of the quality of life features known from IDEs to be available for n/vim. With the more elaborate configs it does seem to have a slight taste of IDE-envy, especially those that make editing more cumbersome by introducing various dialogs, extra-windows and whatnot and end up looking like a vscode clone. Well, what can I say, vscode seems to do something right when quite a few people like to replicate the experience in a shell.
Configs became a hassle with LSP and Treesitter and the effort to integrate them into autocomplete, folding etc. But you get quite the value add for your troubles, so I say that's fair game.
Last but not least, I actually do subscribe to the idea that Unix itself is the IDE here and vim is but a part of it. To me it's quite undeniable that vim meshes orders of magnitude better with the rest of the system than any given IDE I know of.
I like his take that as his experience grows, his need in an editor might change. BASED.
1:20
Welp, as someone, who holds CCNA, CCNP, CCiE, COMPTIA A+, NDG Linux, as well as couple Cyber Security certificates, casually writes scripts in python to help with networking too, I can tell you that Linux is a fun tool for us - net admins too 😁
I acknowledge that experienced vim users look like wizards. However, I've never worked on a project where if I was x1.05 faster, it would have changed anything. And, I don't think such projects exist. If they do, then I would not have wanted to work on them anyways.
what? Vim keys ate not complicated. I'm not even a super fast typist and I beat every most of my monkeytype addicted coworkers that don't know vim at text editing. being able to edit text efficiently drastically reduces the friction between your thoughts and the computer.
@@marcs9451 Cool, sprint points are measured in days, not keystrokes.
I tried helix and I don't hate it.
Nuts and all ; )
I worked on a project that used batch scripts that created bash scripts for deploying to the server from Windows and that too would create another bash script that would be deployed to that server. The code they developed was Python, and questioned why they didn’t write all of that in Python to have a cross platform solution and keep the bash script in the file, with any values being injected using Python.
I went through the whole thing with no vim ide etc a few years ago. I cbfd maintaining it. I’m happy with vscode and vim bindings now. Just works well. Only have to worry about my custom settings file and that’s it.
Kate is nice in that the typing is very responsive in comparison to most gui editors. I use vim and or emacs myself but when my wife wants to code together and she even looks at my screen she pukes and passes out. So I conceded and use vs code for pair coding which is usually bash, sorry in advance for writing a lot of bash.
I saw the comment in chat "vim is nice to switch /etc/editor to nano" 100% agree lol
about GUI vs customizing: in Kate press Ctrl+Alt+i, type keyword you are looking for... (it's searchable list of menu items, actions, configuration, etc...)
Kate is KDE text editor, somewhere between full fledged IDE and simple editor (KWrite is editor component part of Kate compiled as separate simpler text editor, Kate is extended text editor, KDevelop (using KWrite and parts of Kate too) is full IDE). Kate is now available also for windows BTW, although why would you cherry pick only great text editor and miss on the even better desktop environment with better OS? (KDE5 and Linux I mean) Makes no sense to me. (may be Stockholm syndrome, I'm now using linux and KDE for over 15 years on all my machines)
I'm a simple man. I just use VSCode with Vim Extension.
Commitment issues
Simplicity 👌
VSCodium on Windows, neovim on linux ^_^
This guy is a gem. I love all of his videos. He is honest, genuine, and just comes across as a fantastic human, through and through.
I do not like that he hides his code. Humility is good, but it can be a detriment to learning as well. I honestly think hearing this broke my heart, as the development community has its roots in assholary, and it was often celebrated and domain intelligence was often passed of as authoritative as so many systems frameworks, and thought patterns were just trends dressed up as some sort of theory of everything. Trashing a newbies, or another person's code, is like trashing artwork in that we often do not know the purpose, personal thought modeling, and the constraints the code is written in. Yes, code can be good, and it can be bad - but feedback can be good, or it can be terrible. So terrible that it is a detriment to the codidng community as a whole. See stack overflow, Debian dev channels circa mid 2000s, and well, a host of anything online.
It sort of just pisses me off that chad cliques and dunking are such a long lived and solid tradition in coding, software engineer, developing, or whatever the COTM wants to label it. [Chads of the moment]
What I did is add Notepad++ shortcuts to Sublime Text, so I could work in Sublime, but with the speed and efficiency of Notepad++.
thanks for giving Matt more exposure. Nice guy
Index by one is actually better if you're not used to index by zero. Say you have an array of length 5. What's the index of the first element? 1. And the word "first" matches the word "one". What's the index of the last element? 5. What's the length of the array? 5. There's no mental translation required, getting elements is as natural as counting. Indexing by zero exists because of the way computers are designed, not the way people think. Personally I think that since programming languages are created primarily for the benefit of people to write in them (otherwise, just write in raw hex or binary, it's all the same to the computer), it makes more sense to design programming languages the way people think. Unfortunately, engineers have a terrible tendency to prioritize what is easier for them to implement rather than what is easier for people to use.
Nvim is hard because you need to take time to develop your config, in addition to learning how to write code. IDEs and editiors give you nice helper wheels until you’re ready. Took me about 30-40h of offline learning to get Nvim setup right and I’m only now starting to feel more productive than in VSCode (I knew how to program at that point already tho).
Matt, you made it bro! I’ve been following this guy for over a year now. He’s got some spicy takes.
Is there an NVIM-wizzard-config-cli that creates a noevim.config? Mabe AI supported?
16:45 Intellij and every jetbrain's tool is just perfect
Don't worry, vi(m) will probably stay your friend on the command line for the quick jobs. Be it a git commit text, be it a small change in a config file. Even the smallest embedded Linux board with a slow RS232 connection comes with vi.
For notes I really like Obsidian. The combination of search options, slideshows, Mathjax, Mermaid diagrams, markdown, image embedding, and Vim key bindings(!) is just 😘
This is exactly what I feel like. I am a Linux support engineer and vim motions is a blessing when you are troubleshooting or editing files in a remote server. I use neovim for my macbook and personal linux server and its amazing. But I am a noob at programming and as soon as I use vim/neovim to code, I do not feel very productive. I feel there is too many things to learn about neovim itself when I do not have much time to learn and program in the first place.
a while back I had to use the ancient Borland Delphi straight from the year 2000 and if I remember correctly it had index 1 for Procedures and index 0 for Functions. no, it doesn't make any sense.
In general index 1 makes sense because it's the first element. What made no sense to call the thing you access arrays with an in c an index. There it is the distance to the start and we usually call that an offset (except for arrays).
@@vorrnth8734 it's...an offset from the beginning of an array unless for arrays? what are you talking about
Borland Delphi didn't even use C it used Pascal.
@@vorrnth8734 anyway I don't even care which index "makes more sense" I just wanted that garbage IDE to be consistent lmao.
@@rigen97 no, it's called offset normally. But for arrays people call it index.
I don't think vim is superior, but I use it 90% of the time every day. Hitting q and turning on recording is a frequent PITA. Trying to quit with multiple buffers opened is a frequent PITA. Regular expressions being weird is a frequent PITA. Trying to undo with capslock on is a frequent PITA. Cut and paste with the mouse between vertical split windows is a frequent PITA.
None of that matters, because what vim is is an addictive experience. It's an experience of instant gratification. I use vim because it generates a sequence of dopamine hits.
maybe this is like some edge case (or i'm just misremembering because it was so long ago and brief) but when i tried learning lua for a bit, whenever i searched up any questions about even basic stuff, 99% of the time i would just get some roblox developer forum posts as results or a stackoverflow result which is semi-related and from 8 years ago
what can you use vim for that isent codeing?
The KISS mentality from the Neovim setup videos awhile back really made it easy for me to get something actually usable with real working completions. It also helped me realize that using ALE and vanilla Vim just wasn't a real option if I wanted an experience that would actually be comparable to VSC and worth a switch.
To answer your question of why some of us non-developers veer towards Linux. I can only speak for myself here, but basicallly
1. I always like messing around with computers from my first interactions with a computer in the late 80s to now. The terminal was a very early memory of computers, and a chance to go back to that sense of childhood discovery
2. I'd been wanting to leave Windows for years and the pandemic gave me the time and space to finally say 'fuck it, i am a do this yolo'. MacOS was an option but I didn't like - and I still don't despite using Macbook pro for the last year - the Apple philosophy of 'you don't need to know' when it comes to giving users a chance to customize their computing experience
3. Linux makes me fall in love with computers and computing. There is an almost childlike joy to it that I don't get when I am on Windows or MacOS.
I do agree with VSCode customization being horrendous, but i'd counterargue that we focus too much on customization. In the end if i want to get shit done, there are times when it's better to have preconfigurated env where i can hit 1 button and get stuff done. Othertimes sure being able to see "everything" might be nice
bro I just want to write my keymaps in a text file, VSCode over complicates so many little things like these thay I'm just uncapable of enjoying the conveniences it adds.
I have a single init.lua with like 300 (significant) lines of lua code and it does everything I want
True, I'm just glad vscode has a dark theme and I can install add-ons very easily
Are there configurations for colurblind individuals such as myself?
6:50 Também te amamos, Sr O Nome é ThePrimeagen
Been learning vim all summer. Much about it I like. But it takes a long time to really feel productive with it. I have to have a vim cheat sheet open all the time. Today I went back to VS Code and it felt good.
From stackoverflow:
Lua is descended from Sol, a language designed for petroleum engineers with no formal training in computer programming. People not trained in computing think it is damned weird to start counting at zero. By adopting 1-based array and string indexing, the Lua designers avoided confounding the expectations of their first clients and sponsors.
Although I too found them weird at the beginning, I have learned to love 0-based arrays. But I get by OK with Lua's 1-based arrays, especially by using Lua's generic for loop and the ipairs operator-I can usually avoid worrying about just how arrays are indexed.
yeah people blow it out of proportion. honestly kind of your problem if you can't add one lol. It's like pi vs tau, it turns out that the "niceness" of one over the other kind of balances out. in a high level scripting language you don't have to worry about indexing via memory offsets, so it really doesn't matter.
LUA is the first language I ever did as a child in Roblox and it got me into programming.
I actually feel that kickstarter is too much. I appreciate that it exists though, and I use it as a guide. I had a super minimal vim config. I basically just want language tooling, search and a quick way to pop from file to file. I had keystrokes set like I like them in vim, but kickstart, though great, is too different. I decided to slowly move to neovim and have half my config in vim and half neovim. And, I’m staying minimal because the hotshot neovim plugins seem to die often.
“I can give it up any time I want … but I might still use it to edit a config or two”
He’s gonna be right back at it in two weeks.
I use “cheatsheet-driven development” to learn these things, which means I print out the ref cards and keep them out so I can practice new things. Vim was hard for me (about 10 years ago) and it’s easy to get stuck in a rut with the same 5 binds over and over again.
Kates not that bad though. It’s just there and it’s got a few languages set up from the get go.
1:20 I've been programming for 10 years (not counting shell scripting), paid for 6 years. Linux user for 26 years, plenty of those was spent using vim.
I think if Spacemacs (Emacs with vim keybindings and a menuing system accessible from pressing in vim normal mode) had been mature 20 years ago, VS Code wouldn't exist.
It's that good.
I know all ins and outs of vim and i have been using it for six years but now that i actually have to use it to edit 3 files in my html css js little project i realize that using it isnt as rewarding as juzt letting everybody know that i use vim. Also i use vim guys.
You just split your screen into three windows and that’s it. Also you can make forth one for a terminal and live server logs. No plugins required, this is all out of the box Vim.
Long time Linux user, and also not a programmer. I did admin Solaris boxen back in the day though. Aaaand, Emacs/ LaTeX for document prep, newsreading, mail etc.
14:08 Kite has 4 buffers open. Wow! Hopefully Kate is not an electron thing.
I've learned a little Vim in case I need a command line text editor that's better than Nano. But I can't stay in it long term either. I'm using Notepadqq in Linux on my laptop and Notepad++ in Windows on my gaming PC. All my compiling in Windows is actually done on Arch in WSL2. The only reason I'm even using Windows is because the vast majority of games are made for Windows only. For the moment, I'm willing to put up with Windows a little more than all the quirks many games require to run on Linux. I'm no programming professional, though. I'm closer to a beginner. I know some C++ and Rust, but I'm more proficient with Python as the software Sagemath is built on Python; my primary hobby is higher mathematics. I've loved Linux for a long time now because of the freedom I have with it.