I am done with vim

Поделиться
HTML-код
  • Опубликовано: 16 окт 2024

Комментарии • 646

  • @PhillipDressen
    @PhillipDressen 2 года назад +306

    Thank you Wifeagen! Your sponsorship is invaluable to the community!
    Prime, between you and TJ I was just giving Neovim a try. It was time to learn why sitting on trees looking through telescopes is so appealing... Now knowing 9 breaks backwards compatibility: I might as well try the lua config too. Thanks!

    • @j.m.manhard
      @j.m.manhard 2 года назад +5

      Well, they promised it would not break backwards compat and would want to avoid something similar to the python2.7-thingy back then...

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +46

      its EXTREMELY hard to keep backwards compat with a language that was designed to be a REPL to begin with.
      full language > REPL language and now they deal with that

    • @FedericoPedemonte
      @FedericoPedemonte 2 года назад +13

      "Wifeagen" 🤣

    • @AdrianMNegreanu
      @AdrianMNegreanu 2 года назад +5

      it's absurd you didn't even bother to read the vim9 release notes but here you are now, bashing it.
      i guess rage-inducing videos/comments is what you're after as that's what youtube rewards

    • @AbelShields
      @AbelShields 2 года назад +6

      @@flagrantace9525 clearly you're someone who's never even given it a go. There's a vast suite of plugins for vim and neovim that make it at least as usable as vscode, if not more. I do use vscode (with vim keybindings), but for development work I often prefer neovim due to the lsp and autocompletion plugins and much less visual clutter.

  • @tobiasjennerjahn8659
    @tobiasjennerjahn8659 2 года назад +89

    I think overall it’s a pretty sensible decision. Vim has always been Bram’s Project and he decided that it’s going to stay that way.
    It’s unfortunate that this will split the vim community even more, but at least now it’s easy to choose. People who like the community driven development and velocity will choose neovim and people who like brams version will choose vim. I think that’s fine. No more “which is better”, they’re just different editors now.

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +47

      This is probably the most reasonable take. They're just different now

    • @rsmith31416
      @rsmith31416 2 года назад +7

      Keep in mind that neovim conveniently keeps merging patches from vim. Fixed bugs and improvements that are added to vim are being used by the neovim community all the time, and most of those changes happen in areas that actually make vim a great text editor.
      I think neovim's development team focus too much time adding IDE-like features instead of improving core features that have had longstanding issues in vim (vim's regex flavor is awkward to use, :vimgrep is slow, the internal pager is not very functional, just to give a few examples). Admittedly, it is easier to add more bells and whistles than refactoring or completely changing old features, but it is a shame that is the case.

    • @nymusicman
      @nymusicman Год назад +1

      @@rsmith31416 I'm not sure that it's a good idea to fix vim's regex, because it does some very specific things for vim. Plus you can always use \v to get "regular" regex working. It's not that bad. I've never used :vimgrep so I can't say, but I know a lot of IDE nvim frameworks use a grep solution that is actually pretty fast. Plus you can always just run native grep from the vim commandline.

    • @rsmith31416
      @rsmith31416 Год назад +1

      ​@@nymusicman The reason core features will never be fixed is basically because it is too difficult, so neovim's team is happy to add more features around the edges. However, in an ideal world, the regex engine should be fixed.
      You can use `\v`, but that's merely a convenience function that it is useful if you don't want to escape too many special characters. It is not a replacement for a fully-featured regex engine.
      Yes, you can use the external grep in vim, but if you look at the output, since it is calling an external program, the output is noisy. It would be better to have a fast built-in vimgrep or at least, if you're going to call an external program, don't show the internal pager to the user. This has been a long-standing issue in the vim community for ages, but again, it is too difficult to fix without breaking backward-compatibility or introducing new bugs. This is why I had high hopes that Neovim would implement these features from scratch.

    • @RogerBarraud
      @RogerBarraud Год назад

      @@ThePrimeagen Yup. And the difference is: One of 'em SUCKS!!!1!
      ;-)

  • @dredre7037
    @dredre7037 2 года назад +181

    Agreed, weird choice to make. Also, as a user, I can motivate myself to learn Lua since it has the benefit of being used outside of vim as well. With vimscript, I never learned it and mostly copied things over since the syntax never made sense to me.
    Also thanks to the wife!

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +63

      hah! same, literally the same.
      I don't want to spend time learning a language that doesn't exist.

    • @lucho7971
      @lucho7971 2 года назад +3

      @@ThePrimeagen so true, i had the same feeling while using it

    • @vorrnth8734
      @vorrnth8734 2 года назад +1

      Actually it is a pretty obvious choice. You cannot be dictator if you share control.

    • @RichardBronosky
      @RichardBronosky 2 года назад +1

      I write all of my RUclips comments in Esperanto.

    • @user-lb1ib8rz4h
      @user-lb1ib8rz4h 2 года назад

      @@vorrnth8734 ??? it's open source, that's why forks exist. if they wanted control, perhaps a better use of time would've been to address the issuess behind why people felt those forks were necessary in the first place (vimscript being one of them)

  • @kuglepen64
    @kuglepen64 2 года назад +477

    Okay, so can we please have a guide to what would be a contemporary Neovim config. No old cruft, all the newest stuff. What does the killer config look like?

    • @nodidog
      @nodidog 2 года назад +126

      You could do worse than watching the chris@machine video series 'neovim from scratch', its the most complete breakdown of setting up a full lua config that I've found, and it's a great base to start from

    • @techworld3043
      @techworld3043 2 года назад

      @@nodidog yesterday i was thinking watching him.

    • @nodidog
      @nodidog 2 года назад +3

      @@techworld3043 he keeps the repository up to date as well, so it's fairly easy for less confident vimmers to deal with API changes since the videos were released

    • @JavierHarford
      @JavierHarford 2 года назад +1

      I second Simon's words, but would like to add if u wanna save a little time you could check out Lunarvim

    • @cullynn
      @cullynn 2 года назад +3

      Summer 2022 full lua config, hit us PLEASE

  • @nomathic7672
    @nomathic7672 2 года назад +136

    Thanks prime's wife for allowing him to reach his final form 🙏

  • @meerzulee
    @meerzulee 2 года назад +74

    Blazingly fast comment !!!

  • @lucabaggi3951
    @lucabaggi3951 2 года назад +10

    looking forward to a full nvim config series! totally agree on this one

  • @AbhinavKulshreshtha
    @AbhinavKulshreshtha 2 года назад +55

    I moved from vim to neovim for LSP. When I tried lua, it was just amazing. Specifically the trick where I could just create a hash table of properties and loop through them to set them, It's just so clean.

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +18

      its just a simple language with few things to help or hurt you :)

    • @entelin
      @entelin 2 года назад +8

      @@ThePrimeagen The whole, variables are global by default I think is a god awful and dangerous default though.

    • @bmbiz
      @bmbiz 2 года назад +1

      @@entelin Absolutely. I find some of Lua's choices bizarre.

    • @niles_5003
      @niles_5003 2 года назад

      ​@@entelin Maybe so, but Lua power users never use global variables.

    • @entelin
      @entelin 2 года назад +11

      ​@@niles_5003 Oh yeah I know. We power users also never make n00b mistakes like off by 1, double free, we always initialize our variables, and certainly never make scoping mistakes. That's why Rust is such a stupid idea as a programming language, good programmers never make mistakes anyway. It's actually a feature to build landmines into your language as it weeds out all the people who shouldn't be programmers in the first place.

  • @marcelor1235
    @marcelor1235 Год назад +7

    Special thanks to your wife (and kid(s) ?) for sponsorhip each episode, as a entrepeneur with wife and 2 kids I know that these special extra times that lead us towards a better future.

  • @totally_not_a_bot
    @totally_not_a_bot 2 года назад +11

    I don't really configure Vim other than setting various options. I'm not a professional developer so I don't feel like I need to, and I like simplicity. I'm trying Neovim because I like the defaults and the autoindentation is better. I also like how the configs are structured using the XDG config and data directories. I'm not sure I would install it if I had to build a system from scratch again. I tend to use custom distros with fairly minimal setups and configuration. If I can change a line in a default config, I will change a line in a default config.
    I use vim because I think it's simpler than emacs and I like ESC:w better then C-x C-s as I don't like pressing ctrl if I can help it. I can't be bothered to figure out how to enable evil mode since I'm lazy with my configs and I'm kinda stuck in my ways at this point. Vim is good enough. The emacs learning curve is also super intense. Basic Vim takes less than an hour using vimtutor.
    Vim also integrates with the system clipboard better. I had to install and learn a seperate package to use Neovim's clipboard functionality. That package _can_ be used with Vim, but it isn't mandatory.
    Hardcore users are going to be affected. Relatively normal users like me are going to be largely unaffected.
    Programming languages and other systems break backwards compatibility all the time. People who like Vim will adapt. People who don't like the change will migrate. It happened with Python 3, and look how that went. People learned the different syntax and moved on. People don't usually like jumping ship to other software ecosystems anyway.
    Neovim is a fork of Vim and doesn't include the Vim license as is specified as mandatory in the Vim license. Vim is charityware, and I like that Bram has that focus. You can support Vim if you want, but he requests that you support children in Uganda instead and even includes donation links, paypal addresses and relevant bank information to make it easy. This information is in the first section of the help docs.

  • @winstonstrongarm8929
    @winstonstrongarm8929 2 года назад +22

    I've only recently come to agree with this mentality on big changes, DIY is not always the best choice, especially when it comes to deciding whether to implement your own standards over adopting something new/different.

  • @freshhorizonswithjakub
    @freshhorizonswithjakub 2 года назад +46

    Thank you Prime's wife for allowing us to have such delightful experience and joy with your husband!

  • @TomJordan741
    @TomJordan741 2 года назад +9

    One aspect of why I like Lua being used in Neovim, is that I can use Lua in other tools like - Hammerspoon, WezTerm, etc

  • @Beornz
    @Beornz 2 года назад +2

    Thanks, Mrs. ThePrimeagen. I hope to see more videos here. It's hard to catch the live stream but love VODs. Keep it up!

  • @Satook
    @Satook Год назад +4

    Agreed. Just use one of the many available options.
    I’d love to see WASM take hold. Much safer getting scripts from the net when they’re sandboxed!

  • @andrewpounds5863
    @andrewpounds5863 7 месяцев назад

    Alright -- been coding HPC and graphics in vi and then vim for almost 30 years... have tons of customizations... but was shocked by Bram's passing and wondered about vim's future. Have played with sublime, VSCode, Emacs, and Atom --- always come back to vim. You've convinced me to give neovim a try. BTW - huge shoutout to your wife for letting you code and make videos in the same relative space!

  • @luissolanodev
    @luissolanodev 2 года назад +30

    Of course I didn't trust the title, c'mon… who thinks ThePrime is gonna leave this fabulous text editor..? No way

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +21

      i mean, i am definitely leaving vim. neovim 100% :)

    • @choicesii1
      @choicesii1 2 года назад +5

      You know.... vscode with nvim extension is the best of both worlds.

    • @luissolanodev
      @luissolanodev 2 года назад +7

      @@choicesii1 I don't think you'll get the full nvim experience by doing so. You'll still be tied to a GUI application that may require mouse interaction sometimes and is not as customizable as nvim.

    • @choicesii1
      @choicesii1 2 года назад +2

      @@luissolanodev I don't find that to be the case. The gui is more like an alternative. I can have tabs opened and just swap by pressing ctrl+tab cycle, and ctrl+{num} switch panes, ctrl+p(type name) search file with filter or :buffers and :b{bufNum} like vim. I can do ctrl+` to access terminal and do a code {dir/path} and open a file or :e and it loads directory like vim. I can adjust the size of the terminal and use nvim when I need it for things like changing multiple files, which I find easier in nvim. But I get access to visual git graph, and mouse over git blame. And a split window with git diff. The gui for git branches in general I find to be more intuitive. Also debugging tools with gui by clicking before the number of a line to create a breakpoint is very intuitive. You literally can do everything in a terminal if you wanted but it looks more perty with vscode themes. There are a few limitations in : commands at times but it is very minimal. And as I said you can just open a terminal with ctrl+` and nvim a file in vscode.

    • @luissolanodev
      @luissolanodev 2 года назад +6

      @@choicesii1 I'm pretty sure you can do everything you mentioned with a couple nvim plugins, so “having the best of both worlds” may not be an accurate term and is kinda subjective in this case. If you prefer having a prettier UI that's ok, but still there's people who want the full keyboard based nvim experience.

  • @MohitDodhia
    @MohitDodhia 2 года назад +4

    You forever have my gratitude, Mrs. Prime

  • @TomJordan741
    @TomJordan741 2 года назад +1

    Good short-take video.
    Chris@Machine has a good Lua video train that helped me bootstrap my personal config. But much of my approach has changed since then. I look forward to yours.
    My focus has been in the perception of startup speed. For example, I want the power of a note system - like Neorg - without paying the cost in time to first edit when I'm not focused on capturing a note - and Neorg has a high startup cost.
    So the techniques of loading only what you want - when you want it - is interesting to me. So I am currently refactoring my config with this focus in mind.
    I have been pulling ideas from a variety of configs all along but now think I'm almost to the point of seeing if I should split it off for others to peruse.
    When you do redo your Lua config videos, consider emphasizing why you are doing it this way instead of another way - I think the why a programmer used this technique instead of that technique is interesting and under represented in config videos tutorials.

  • @kylegaijin
    @kylegaijin 2 года назад +7

    While I use vim key bindings in most of the editors I use VSCode, Jetbrains Ide(s), etc... I really wish I knew (N)vim a lot better and knew how to take advantage of the Lua framework. I totally give you my vote to make a Udemy course or otherwise and the A..Z of Nvim. If I could break away from other editors and go with Nvim solely, that would be awesome.

  • @mattwilliams1844
    @mattwilliams1844 Год назад +1

    Was super stoked on the decision for Lua, now I can re-purpose the learning of the language to awesome window manager, or one of the many cool open source Lua driven game engines.

  • @anonjohnnyG
    @anonjohnnyG 4 месяца назад +3

    If you want a bloated and buggy vim, use neovim.

  • @raptoress6131
    @raptoress6131 2 года назад +2

    Thanks. I had no idea this was going on, and I don't know how to feel about it. I just had to ditch Atom, I'm still trying to get used to Vim and now this.

  • @kevinfreeman9652
    @kevinfreeman9652 2 года назад

    Thanks Wifey.....found out about Primeagen on Front End Masters about a year ago and the content has been phenomenal. Thought I had subscribed since the videos always pop up in my RUclips feed, but I'm definitely subscribed now. Can't wait for the new series.

  • @numtostr
    @numtostr 2 года назад +55

    As you said, lua has a great LSP and tooling around the language which makes it 69x more appealing than vimscript.

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +5

      hands down!

    • @niles_5003
      @niles_5003 2 года назад

      Which LSP and tooling do you use?

    • @alexa.davronov1537
      @alexa.davronov1537 Год назад

      Sadly, lua is a piece of shit compared to the JS. LuaJIT is also dead afaik. Maintainer just dropped it and make few fixes to new version that won't be released soon.

  • @LikeAndFavBF3
    @LikeAndFavBF3 2 года назад +5

    The "New vim series coming soon" news felt like christmas

  • @DimitriSabadie
    @DimitriSabadie 2 года назад +6

    I disagree with your opinion that a specific DSL is “absolutely the wrong decision to make here.” The advantage of a DSL is that it can be written in a way that its host system (i.e. Vim here) can optimize it (special keywords, special semantics, etc. etc.), while that is just impossible with a dynamic, general-purpose language. In that sense, I think VimScript makes a lot of sense. My take on this is that I would rather go “native plugins” (i.e. use the same language as your host system; helix uses Rust plugin, etc.), or use a smart crafted DSL.
    As a Neovim contributor (core discussion, hop.nvim, some PRs into core), I know the advantage of using something like Lua. It lowers the entry bar for people to contribute. However, speaking completely from the technical point of view, I still think Lua was a mistake, as the language is really terrible, and Neovim still cannot provide “Neovim primitive” in that language. Yes, it can export functions and symbols under vim.api, but that’s still “plain Lua primitives.” On the other side, VimScript can have anything it likes, like “map”, ”xmap”, etc., and there is no “in-between translation.”
    As a friend recently said on Twitter: languages that try to solve one specific problem will always be smarter and better than general-purpose languages that try to solve that same problem.

    • @magmacodes9143
      @magmacodes9143 2 года назад

      Genuine question, doesn't that limit the number of people willing to contribute to the editor. Also doesn't that make it difficult to write Plugins / Scripts ?
      The best thing about something like VSCODE is that almost anyone who wants to contribute, CAN !

    • @DimitriSabadie
      @DimitriSabadie 2 года назад +3

      @@magmacodes9143 You are completely right and you are paraphrasing what I said (“It lowers the entry bar for people to contribute.”). However, it doesn’t change all the the other problems. Sometimes, having many people on a topic doesn’t make the situation any better (it makes it worse).

  • @AnalyticMinded
    @AnalyticMinded 2 года назад +6

    Recently I tried Neovim for the first time, and decided to do a lua config, 'cuz that's what all the cool kids were doing.... It was not a fun experience. After 2 days of trying to replicate my vimscript config, I gave up. It seems to me that you have to know some lua in order to set package-specific options (copying configs won't help if they don't use your particular package). And I really wanted to like Neovim! The other thing that killed it was the absence of a terminal buffer. I mean, Neovim does have a terminal, but not like Vim. It does not open in a split, and I never did find out how to get it to work properly. I always had to kill Neovim to get out of the terminal. I'll be sticking with Vim for the foreseeable future.

    • @user-he4ef9br7z
      @user-he4ef9br7z 2 года назад +1

      Of course you gotta know Lua to write Lua. Lua is pretty simple, you can learn it in a matter of days. Besides, that Neovim can use Vimscript too. I don't understand your problem with the terminal buffer. I can get a terminal in a split and use it pretty easily.

    • @ramkumarradhakrishnan8523
      @ramkumarradhakrishnan8523 2 года назад +1

      neovim terminal does seem fast ruclips.net/video/JWReY93Vl6g/видео.html do you mean faster than this, also ya lua config does feel tough to create though chris matis videos seems to help a bit, im thinking of checking some basic lua tuts and this one.

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +4

      the terminal buffer is pretty simple to get out of once you know the secret set of keys to leave it. it does not behave like the rest of vim because C-c / Esc have meanings in the terminal so they chose a different set of terms to exit ()
      I tried going full lua and I got everything done + more in about 3 hours, but i am familiar with lua and have some idea how it should work

    • @AnalyticMinded
      @AnalyticMinded 2 года назад +2

      @@user-he4ef9br7z Vimscript is simpler and more concise when configuring. As for the terminal, when I type :terminal, I get a prompt but can't navigate it. Don't know why that is. In any case, I'm sticking with Vim for now.

    • @AnalyticMinded
      @AnalyticMinded 2 года назад

      @@ThePrimeagen Thanks for the clarification! Maybe I'll revisit when I am more familiar with the language.

  • @quentincaldway
    @quentincaldway 2 года назад

    Yoooo mind blowing! You're the veteran on All thing Vim bro lol. Hands down! I go to no other channel but this on for Vim.. But man, the turn around for NeoVim lol, time to search your channel for some tips and migration techniques....I pray I don't break my .vimrc lol.
    Alsoooo Cheers to the wife my bro! My lady is my everything! Shout out to all the Queens out there making us men wiser and available for what we do!

  • @segueoyuri
    @segueoyuri 8 месяцев назад +1

    fun fact: not every single article of software ever produced needs an update

  • @user-fn7dk1su3b
    @user-fn7dk1su3b 2 года назад +4

    What you don't understand is that the language binding is also shitty in (neo)vim. It'd be also an insane amount of work to do it properly. I wonder how long it takes for neovim to stop passing vim related execution as a string. The point of vim9script is to drop the language binding support and encourage the usage of channel API. With the legacy vimscript, it was even slow to handle the data from the external process. So this is the only way forward for vim. Now thanks to vim9script, my vim binary is linked with no other languages.

    • @rsmith31416
      @rsmith31416 2 года назад +4

      Finally one sensible comment. Yes, language bindings are terrible and add complexity with very minor benefits. I don't think it is possible to get rid of all the namespaces, in the same way such pattern has been the norm of every language binding in python, ruby or lua in vim. I don't know why everyone loves Lua in neovim now and no one seemed to care to have such interface in vim when both APIs are extremely similar. Lua is a great language, but I have never seen anything written in Lua that is more readable than the equivalent script in vimscript (and there is no comparison with the significant improvements that vim9 script brings to the table).

    • @immer5680
      @immer5680 2 года назад

      @@rsmith31416 vimscipt is a terrible language stop fooling yourself, you can see how many great plugins out there written for neovim thanks to lua. I know many people who tried to make a plugin for vim but gave up the idea after trying to wrap their head around vimscript

    • @rsmith31416
      @rsmith31416 2 года назад +2

      @@immer5680 Vimscript is certainly not a great language, but if you compare implementations of arbitrary functionality for neovim written in Lua vs vimscript, it is undeniable that even legacy vimscript is more readable than Lua. As I said in other comment, this is not Lua's fault by any stretch of the imagination. It is simply that the language bindings makes any language look like a mess (even setting a mapping is too complex). The same can be said of language bindings for python, ruby and lua itself in vim.
      Vim9 script is such a big improvement. I would be surprised if anyone needs more than a few hours to learn it and be productive with it.

    • @immer5680
      @immer5680 2 года назад

      @@rsmith31416 vim.keymap.set('', '', '', opts...) it's not that complex.
      Less elegant than vim, but still not a deal breaker

    • @rsmith31416
      @rsmith31416 2 года назад +1

      @@immer5680 That's a simplified signature, but it is not good when that's one of the simplest tasks you can do in neovim. If you have to pass around tables, then it looks even worse.

  • @afaqansari149
    @afaqansari149 2 года назад +2

    Thank you Wifeagen for keeping ThePrimeagen in NORMAL mode ✌️

  • @robertturner7090
    @robertturner7090 2 года назад +4

    My wife thanks your wife for letting the boys have a laugh together. Keep up the solid work!

  • @user-he4ef9br7z
    @user-he4ef9br7z 2 года назад +14

    Currently I have a mixed config. Even though Lua is a good choice, there's one problem: Lua is much more verbose compared to Vimscript.
    `set nu` vs `vim.wo['nu']=true`
    one can be typed on the go,
    Therefore, as of now, simple parts of my config are in Vimscript, while the really complicated parts are reserved for Lua.

    • @11WicToR11
      @11WicToR11 2 года назад +4

      agreed, I mean, i would be against vimscript (years ago) ...but as long as we have it, why not use it? It has syntax highlighting, its made for vim. All primeagen arguments hold imho, i just dont see reason to rewrite your config to that less readable form. BUT when i write custom functionality, its lua ...then its binded to keys in vimscript, but there is this one readable general place where everything is glued together. Subjective opinion tho

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +1

      i was pretty much this for the last 1.5 years.
      i decided to finally make the jump.

    • @twb0109
      @twb0109 2 года назад

      I have it setup as
      ```
      local set = vim.opt
      local let = vim.g
      local o = vim.o
      local bo = vim.bo
      local wo = vim.wo
      ```
      At the top of the config and then it's just:
      ```
      set.nu = true
      set.rnu = true
      ```
      Still not as simple, but easy enough and just as readable

    • @rsmith31416
      @rsmith31416 2 года назад +2

      @@twb0109 I don't think that's more readable. If anything, you're adding another level of indirection. This is the problem with all language bindings (python, ruby), so it is not Lua's fault. However, I have to say I have never seen anything written in Lua that is not simpler and more readable in vimscript and with the official release vim9 script, scripting is so much better in vim. People forget that in some cases, domain-specific languages are better than general-purpose languages and something as niche as a text editor definitely benefits from a DSL.

    • @badeip
      @badeip 2 года назад

      @@twb0109 `set nu` is `vim.opt.nu = true`.
      `vim.wo['nu']=true` doesn't even do the same as your vim command.

  • @moitoius
    @moitoius 2 года назад +1

    This is how I feel about Dockerfiles. The approach taken by buildah (without bud) is significantly better, because it uses a off-the-shelf solution: the shell that you like.

  • @PictorialPlanet-
    @PictorialPlanet- 2 года назад

    Thank you Mrs Primeagen for sponsoring these videos.

  • @erlonpb
    @erlonpb 2 года назад

    I was thinking about doing the jump.
    Can't wait for your neovim series, first one should be how to do that jump smoothly

  • @zenshade2000
    @zenshade2000 2 года назад +1

    For those that just want to get started with Neovim/vim but are intimidated by all the configuration stuff, I'd recommend just going with VSCode with the neovim extension for now. With that choice, about the only config you'll need to figure out is how to remap to something sane like 'jk' or 'ii'. I say this as someone who is having a blast going 100% lua config in Neovim. But I'm on day 5 now, and that's with having LOTS of experience with Vim/Neovim setups. You just have to decide if you're the type that enjoys confronting config issues and conquering them. I do, and I definitely learn A LOT in the process. But that's not something you want to deal with when first starting out with neovim/vim.

    • @theroboman727
      @theroboman727 2 года назад

      there is also astronvim which I think its just very good beginner defaults for neovim

  • @LeelaSankharM
    @LeelaSankharM Год назад

    thank you mrs.ThePrimeagen.. entire community bows to you 🙇‍♂🙇‍♂🙇‍♂🙇‍♂🙇‍♂

  • @denzilv
    @denzilv 2 года назад

    Thank you, Mrs. Primeagen!
    I'll definitely check out Lua! I now have Neovim installed on my Windows and Mac. 😈

  • @nicio1393
    @nicio1393 2 года назад +1

    Thanks to you and your wife for this. Can't wait for the neovim series

  • @derpythecate6842
    @derpythecate6842 2 года назад +23

    Dude I thought you were switching to emacs or something. Long live Neovim!

  • @cherryramatis2508
    @cherryramatis2508 2 года назад +4

    I’m just happy that I know how to use plain vi and integrate properly with the shell, no vim/neovim dependency at all

    • @ThePrimeagen
      @ThePrimeagen  2 года назад

      Yeah, when I have to use server stuff, I just use that. That's why I never change the default of vim motions.

  • @Hobbitstomper
    @Hobbitstomper 2 года назад +25

    The entire tech industry is so obsessed with creating their own programming language, scripting language, frameworks and libraries. The number #1 thing that gives me a headache is that every single day there is a new framework being released, often creating their own scripting language syntax, claiming it solves a problem or helps with productivity. If nowadays I want to create a webapp and I decide to look up things, I am basically being told to use 20 different JS frameworks half of them trying to reinvent the scripting language itself requiring me to learn a new syntax, and on top of that, we now have code editors that start to create their own languages as well, all in the name of "speed and productivity". No no no no! NO!!! This is ridiculous. I don't want to keep learning new languages each time I take a toilet break. Seriously, the amount of people in the tech world who are obsessed with re-inventing the wheel for every single line of code they write, is ridiculous. I'm sticking with NeoVim and VSCode, and I'm only using extensions that I know I use almost on a daily basis. Programming wise, I stay away from bloatware. That means no nodeJS. If it can be written in PHP and runs stable and performs well, so be it. Front-end, no JS bloatware frameworks for something that can be written in vanilla JS within a reasonable amount of time. Always try and use vanilla JS first, otherwise look for the least bloatware framework possible. Hopefully soon I can start using Rust and WASM to replace a lot of the nonsense I've been dealing with.

    • @user-he4ef9br7z
      @user-he4ef9br7z 2 года назад +5

      Couldn't agree more.

    • @turolretar
      @turolretar 2 года назад +3

      That’s because Js front end is for soyboy zoomers, they can’t commit to one thing only and their attention span is shorter than the period with which a new js framework is released.
      This is a joke btw

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +13

      i am right there with you. i think collectively people are getting really sick of this shit.

    • @metachronicler
      @metachronicler 2 года назад +5

      I get what you are saying and I don't disagree. I would add that in the case of Javascript the reason that all of these web frameworks exist is that the language is fundamentally unfit for purpose. Something like React should have been implemented at the language level at least a decade ago if not more. Or a better language should have been made. Sadly our industry just doesn't think that way or really have good mechanisms for enabling that kind of thought process.

    • @ThePandaGuitar
      @ThePandaGuitar 2 года назад +4

      "i hate new languages. let me replace everything with a new language called rust" lol

  • @PaperBenni
    @PaperBenni 2 года назад

    Is vim9script mostly an update to the existing code base or did they build a lot of new things from the ground up? If it is just a few changes to the existing vim script then it probably was less work than integrating a whole new language...
    Still got managed to be beaten by neovim in terms of features though xD

  • @Zeioth
    @Zeioth 2 года назад +1

    Might be, but I still see Vim as the stable branch of Neovim basically. Once I have everything working fine, I don't need to touch it at all. So the real take here is, how difficult actually is to create plugins for lua vs vimscript? The main issue now is vim and neovim plugins may stop beign compatible with each other.

  • @maksimkim1514
    @maksimkim1514 2 года назад +3

    So at last vim conf would be called neovim conf, right? :)

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +1

      i have literally discussed this.

  • @sturgeonphillip
    @sturgeonphillip 2 года назад

    Oh wonderful Mrs Primeagen, you have blessed our lives. We are eternally grateful (this may or may not be read using the voice of Toy Story's little green aliens).

  • @sub-harmonik
    @sub-harmonik 2 года назад +2

    lua's great, probably one of my favorite languages, especially interpreted. The only thing I dislike is the convention of arrays starting at index 1

  • @FreddyRangel85
    @FreddyRangel85 2 года назад +4

    I agree. When I heard about what’s in Vim 9, I seriously started taking a much closer look at NeoVim.

  • @earthling_parth
    @earthling_parth 2 года назад

    Nvim for the win 🤩
    I also want to start using lua for my Nvim config soon.
    Also, thank you Prime's wife for letting him share some of his thoughts with us degenerates on Twitch and YT 😄

  • @aaronbos1067
    @aaronbos1067 2 года назад +7

    I’ve also been keeping my config mostly in VimScript, but have just used some lua for things that I wanted to use out of the box. Going all in on Neovim and lua config does seem to be the way to go if starting from scratch in 2022.

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +7

      that is what i did about 2 weeks ago and that is why i am redoing my vim series.

  • @pokefreak2112
    @pokefreak2112 2 года назад +1

    I agree with the points made in the video, but a quick look at the nvim repo shows me it depends on vimscript, python AND lua.
    How is this not objectively worse than just vimscript?

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +1

      vimscript for legacy terms (neovim supported everything up to vim9scirpt),
      python for building/scripts (nothing to do with neovim as a user, only dev)
      lua for actual configuration
      to me this isn't worse. I use py scripts for things all the time, but they are dev only things.

    • @IvanGOrtolan
      @IvanGOrtolan 2 года назад

      @@ThePrimeagen I guess vim9scripts brings a positive thing, everybody switches to lua and nvim and then nvim can drop support for vim script :)

    • @rsmith31416
      @rsmith31416 2 года назад +1

      ​@@IvanGOrtolan That's not possible. The neovim team relies on merging patches from vim for bug fixes and improvements, which routinely require vimscript. On the other hand, vim9 script is really great. Much easier to read than vimscript and lua. It is not Lua's fault, though. Every language binding (python, ruby, lua in vim) has the same issue with the amount of namespaces that are exposed to the user.

  • @krombopuloslincler4849
    @krombopuloslincler4849 2 года назад +4

    He actually considers Rust to be his wife. So thank you Rust!

  • @driden1987
    @driden1987 2 года назад +7

    Agree 100%
    Definitely looks like there are lot of questionable decisions on the VIM side while neovim is nailing it and has gathered an awesome community with some amazing projects.

  • @chillydoog
    @chillydoog 2 года назад +1

    Wow. Metaphorically speechless. On today of all days. This country is going down the sh!tter!
    Ty wifeagen.

  • @rodelias9378
    @rodelias9378 2 года назад +1

    New neovim series coming soon!! Thank you very much to ThePrimeagen’s beautiful wife!!

  • @frydac
    @frydac 2 года назад +2

    Do you know neovim is more popular? I would think vim still has a much larger userbase. I do think the ratio power/casual users is much higher with neovim. It does seem like the split that lua kind of started is now firmly confirmed and very likely keep growing, unfortunately. It seems like most new plugins will have to choose either vim or neovim, or use the 'ancient' way, for how much longer that will keep being supported.
    I kind of expect vim to not die and continue to have a sizeable community of plugin developers who stick with vim. I guess time will tell.

    • @rsmith31416
      @rsmith31416 2 года назад +2

      I generally agree except that the number of power users might actually be in favor of vim. Neovim is much more focused to cater to new developers and such users are more likely to install too many plugins to turn neovim into an IDE. At least in my experience, the real power users (people with many years of experience that know how to use vim very well) install very few plugins and tend to work with built-in features instead.

    • @josemembreno4996
      @josemembreno4996 2 года назад

      I agree with your opinion!

  • @SoulExpension
    @SoulExpension 2 года назад

    Reminds me of ... IBM Domino/Lotus server.😕 Why layer crap like that? Where did minimalism go?

  • @vizunaldth
    @vizunaldth 2 года назад

    Nice work on landing that sponsorship, probably the hardest one of all to get

  • @tosch9057
    @tosch9057 2 года назад +2

    I've been holding back on going full lua because I'm too lazy to properly learn it xd

  • @RogerBarraud
    @RogerBarraud Год назад

    Thankyou Mrs Prime!
    Rants keep me sane 🙂

  • @marcotrosi
    @marcotrosi 2 года назад +4

    Nobody is forced to use vim9script even when switching to Vim version 9. Old Vim script is still default. Also I'm maybe one of the biggest Lua fans, I just love this language so much, and by Lua I mean pure PUC Lua, not LuaJIT or MoonScript. But I'm not ready for NeoVim, and probably never will be. Tested it, wasn't happy. I don't care that it uses my favourite language for scripting and config. I also don't know if I will use vim9script because plain old vimscript is simply enough for me. It does what I need and that's it.

  • @ludawig_
    @ludawig_ 2 года назад +1

    New vimscript? Sounds like a bad idea. A little off-topic: Is there a keyboard shortcut for that "wife thing"? 🤔

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +1

      yeah, its an emacs shortcut, cannot remember

    • @ludawig_
      @ludawig_ 2 года назад

      @@ThePrimeagen DOOM emacs?

  • @AdiosOcelote
    @AdiosOcelote 2 года назад +2

    The VimScript is the main reason of why I didn't really want to swap (or try out) Vim in general. Though after watching some of your streams, I'm thinking about giving Neovim a shot, though I'd love to see Neovim removing all the Vimscript is uses and replacing it with Lua or something else (preferably Lua since it already supports it). Probably not gonna happen, but whatever.

  • @n0kodoko143
    @n0kodoko143 2 года назад

    still here for it. Moved my .vimrc over a year ago now. nvim and not looking back! (now to get nvim to be the default with distros) - "Thanks Mrs. Prime" ... "A"

  • @solidoak79
    @solidoak79 2 года назад

    Thank you, Mrs. Primeagen.

  • @itellyouforfree7238
    @itellyouforfree7238 Год назад +1

    I never used NeoVim before. I will transition from Vim to NeoVim today because of that decision. I've had enough of half-ass scripts. Time to finally have an excuse to learn Lua the proper way.

  • @torphedo6286
    @torphedo6286 Год назад

    This seems like a reasonable take. From the benchmarks I've looked at, LUA (and esspecially LuaJIT) can be insanely fast compared to other similar languages.

  • @oumardicko5593
    @oumardicko5593 2 года назад

    Thanks Ms.Primeagen for allowing us to enjoy Mr.Primeagen. XD

  • @davidjeters
    @davidjeters 2 года назад

    It's just evolution.
    Ed -------> Vi -------> Vim -------> Neovim --------> Some new unknown successor in the future.

  • @zacanger
    @zacanger Год назад +1

    I still haven't used the new vimscript, don't care, doesn't matter, VimL has always been an awful language and I use it as little as possible (Lua, also, is not a good language, and no one can convince me otherwise). But Vim has had Python support since forever, and async support (making it actually good) since Vim 8. The wrapper still needs to be in VimL, but all the work can be done in Python. `find` sees 27 Python files in my Vim plugins directory, so it's also definitely in use IRL. I don't think nvim means the death of vim, but it's an interesting enough take that I just subscribed.

  • @pkoch
    @pkoch 2 года назад +1

    Thank you, Primeagen's wife!

  • @whatever6223
    @whatever6223 2 года назад +3

    Helix editor is a great option for those who like vim, but don't want to mess with all the configuration

  • @dominikoeo
    @dominikoeo 2 года назад +3

    You start with the wrong assumption by saying "it is a backward compatibility change". It is not incompatible. Vim9 is compatible with the older Vim script, you can mix Vim and Vim9, even in the same file where some functions can use Vim script and can call other Vim9 functions, which is quite an elegant transition from Vim to Vim9. My ~/.vimrc is mostly Vim script, but it now also has some Vim9 functions.
    Also, Lua is not better in my opinion. Lua is certainly a good and fast general scripting language (at least when using JIT, but unfortunately Lua JIT is stuck at Lua-5.1). However, in the case of Vim, having a specialized language is better, as it integrates better with Vim and looks more concise and familiar to Vim users. IMO, using Lua in Vim config for example looks frankly noisy and not so good.
    The video makes it as if LSP was only available in Neovim. That is not true. In Vim, there are several plugins that provide LSP whereas in Neovim it is builtin, but both can do LSP. Regarding Tree-Sitter, it is admittedly only available in Neovim as far as I know.
    My concern though is that Vim and Neovim tend to diverge and that can do harm. I'm hoping Neovim can support Vim9 in the future, but it's not clear whether it will be the case. Vim is the original editor, so Neovim should ideally stay mostly compatible if possible.

  • @ChrispyChris3
    @ChrispyChris3 2 года назад +6

    I completely agree. I think Neovim is definitely the bee's knees. It seems like Bram is giving himself a ton more work and also like you said, more bugs for decades haha. Considering he pretty much works on it alone. I too am totally embracing Lua and Neovim. I just hope the API and all continues to get a little better!

    • @ThePrimeagen
      @ThePrimeagen  2 года назад +1

      they are pretty crisp as is, but yes, there is always better.

  • @Imaltont
    @Imaltont 2 года назад +7

    Scheme also a really nice choice. Make Vim Emacs 2.0. Tbh it's hard to be simpler than scheme, it's a wonderful language for things like this. There are even implementations made specifically to be embedded into other programs to make them programmable, like Guile Scheme.

    • @krux02
      @krux02 Год назад

      Or make Emacs into the next gen Vim with devil-mode (or doom emacs if you want to have an out of the box experience that actually meets modern standards). Unlike vimscript, elisp is actually a good mature language that I actually like.

  • @pershin-daniil
    @pershin-daniil 2 года назад +1

    Great video, I’m waiting for new Neovim tutorials, videos and so on 👾

  • @Prod-23
    @Prod-23 Год назад

    I'm a great believer in only building the bits of your system unique to your domain.
    Everything else, go with something "standard" that you don't have to look after in addition to the commitment you've already made to your own code and customers.

  • @caleblagrange7164
    @caleblagrange7164 2 года назад +1

    I noticed a massive performance increase after fully transitioning my nvim to lua. I never could have imagined moving back to vim. Now I wonder though, how might a similar vim9 config perform compared to my lua config?

  • @blackfrog1534
    @blackfrog1534 2 года назад +2

    I followed primes old config to get my neovim config started and then I added some of my personal preferences and everything works great and now I feel like going full lua is a waste of time but maybe im wrong

  • @RichardBronosky
    @RichardBronosky 2 года назад +1

    I too have tried to keep my vim config compatible with both neovim and vim. This is the first I've heard of vim9script. This gives me enough motivation to commit to Lua. I'll keep a small vimrc gist around for when I ssh into boxes/containers with vim8. But for my workstations, I'm going full Lua, Telescope, and TreeSitter. Bram, please have mercy on my soul.

  • @alvarojneto
    @alvarojneto Год назад

    I hope that the rebranding explanation given to neovimconf is honest, because I am basing my pivot to neovim out of it

  • @oglothenerd
    @oglothenerd Год назад +1

    I am looking at Helix. A text editor that is similar to Vim, and is created in Rust.

    • @mba2808
      @mba2808 Год назад +2

      There is 70% chance that creator of that is trans then

    • @oglothenerd
      @oglothenerd Год назад +2

      @@mba2808 XD

  • @tato03130
    @tato03130 2 года назад +5

    Prime why did you scared me with that thumbnail? 😢

  • @KFlorent13
    @KFlorent13 2 года назад +1

    Thank you, ThePrimeagen's wife.

  • @be3yjreuxyfgthutnhck92
    @be3yjreuxyfgthutnhck92 2 года назад

    I started using vim because of you and loving ir so far. Can you make series of tutorial for using lua and neovim expalining all the things you said.

  • @5lickwi11
    @5lickwi11 2 года назад

    Thank you Mrs. Primeagen!

  • @epiderpski
    @epiderpski 2 года назад

    To the Beautiful Wifeagen, Thanks! Primeagens screams help me sleep at night.
    Oh, and he's right on the money with this video.

  • @vtrudkov
    @vtrudkov 2 года назад +1

    Jesus! I can't catch him on the normal speed, but on 0.75 he became so lovely stoner!

  • @elhadjbabacarcisse2868
    @elhadjbabacarcisse2868 2 года назад +2

    Thank u to miss Prime 🙏

  • @labadcloyd
    @labadcloyd 2 года назад +1

    Thank you Primeagen's wife!

  • @paulmurray3244
    @paulmurray3244 2 года назад

    Thanks to the better half for sponsoring this video.

  • @bearwolffish
    @bearwolffish 2 года назад

    An additional ty to the wife for letting you scream in the dungeon.

  • @pragyan394
    @pragyan394 2 года назад +4

    You know VimScript is poorly designed when a comment starts with "

    • @user-he4ef9br7z
      @user-he4ef9br7z 2 года назад

      Not unique in that regard. Visual Basic does to.

    • @not_ever
      @not_ever 2 года назад +1

      @@user-he4ef9br7z Oh Visual Basic. What good company to be in 😶

    • @smjonas8616
      @smjonas8616 2 года назад

      At least Vim9Script changed that

    • @user-he4ef9br7z
      @user-he4ef9br7z 2 года назад

      @@not_ever Visual Basic is one of the most important tools for hackers/security researchers/pentesters.
      The ability to make and run complicated scripts on a Windows system with 0 dependencies is unparalleled. VBS is a pretty important language.

    • @not_ever
      @not_ever 2 года назад +1

      @@user-he4ef9br7z No one said it isn't important but it is fugly

  • @kein3001
    @kein3001 2 года назад

    Thanks you very much Prime wife!

  • @AdrianMNegreanu
    @AdrianMNegreanu 2 года назад +6

    Stop eating crap: vim9 doesnt break plugins previously written in vimscript

  • @TheHackysack
    @TheHackysack Год назад

    thank you, ThePrimeagen's wife

  • @gargleblasta
    @gargleblasta 2 года назад +1

    1:09 Did he just say "follow eMacs" ?
    /me grabs torch

    • @ThePrimeagen
      @ThePrimeagen  2 года назад

      do anything but write vim9script

  • @JavierHarford
    @JavierHarford 2 года назад +2

    I nearly felt gaslit with this title, like all the vim/nvim evangelism only for Prime to jump to VSCode/Emacs - I just had to watch the video