Why even bother with Vim or Neovim in 2022?

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • In this video I take a look at why you should use Vim at all with some UI design theory.
    Vim (or Neovim) are examples of a particular type of UI design which are common of unix or linux tool. In this video I explore the UI dichotomy of Vim.
    Be Brisk: www.bebrisk.email
    My dotfiles: github.com/cal...
    Twitter: / @calinleafshade

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

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

    Drawing a line between discoverability and expressiveness was great to illustrate the case - well done! I also view user friendliness as variant that may differ depending on the user group. I.e if you design a product for wide range of people (let's say a UI for a train ticket machine) it have to be quickly discoverable - people would like to buy a ticket as fast as possible to don't miss the train ;) On the other hand if you design a product for specific group of users (like typewriters, programmers, etc.) who spent whole working day using the product, it may be less discovarable at the beginning, but in the end it could make their work way more efficient by introducing expresiveness. Btw. cool you're back here making videos, keep it up!

  • @jameender
    @jameender 2 года назад +52

    One of the best videos I've seen on why use vim that actually talks about not everyone needing to use it (for example that they don't manipulate text that often).

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

      Thank you, that's absolutely what I was going for. There's too much "VIM IS BEST!" talk that goes on without thinking about actual use cases.

    • @yash1152
      @yash1152 5 месяцев назад

      the thing is, you don't know if u need it unless u try to use it.
      vim opens up a new way to think about all text manipulation operation. this alone is good enough reason for everyone (see "everyone" below) to at least _learn its basics_ and try it for some days and keep its good parts in their mind as a "useful tool" and use it when the need comes.
      imo everyone who uses computer for anything text: be it notes, diary, office docx, or even _file names_ ; needs to manipulate text.
      think about bulk renaming files for example. who doesn't need to do that one day or other...

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

    Its a great to see (and hear) some sensible arguments rather than some "brogrammer" tell you how you should use one thing or the other!

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

    I foolishly resisted really learning vim for such a long time since I had no idea of the awesomeness of editing with vi-motions, macros, ++.
    I really got going by using a toggleable vim Plugin in my IDE, still able to fall back on known shortcuts and methods was nice.
    Run through vimtutor several times over a few weeks and force yourself to use it on real code. A bit of a learning curve to get decent yes, but sooo worth it.
    Good argument for a simple to install preconfigured vim GUI app with meaningful menus, out of the box plugins, configuration, defaults, to ease the entry until you can/want to hang with the cool kids using nvim built from source in a terminal.
    (Yeah, sure clone a good repo config, and the builtin help is nice once you have learned how to navigate it)

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

      Yeah..
      I started using VIM aswell.
      I was an Atom user, but Microsoft abandonet it, well they will in December 2022..
      So I decided to take the plunge and dive deep into VIM.
      I start to see the benefits already... And I love to mess around with my `.vimrc` file hahahaha ;)

  • @jessehigginson
    @jessehigginson Год назад +3

    Great video! Very balanced. If I may suggest, the importance of discoverability only plummets over time for the things you do regularly. The moment you need to accomplish something new (or differently to the way you normally accomplish it), discoverability suddenly becomes very important again.

  • @RolandAyala
    @RolandAyala 7 месяцев назад +1

    @5:05 - 5:20 is poetic and great advice for anybody considering using vim over GUI editor / IDE, and applies to so many other things in life as well.

  • @freshhawk2640
    @freshhawk2640 2 года назад +17

    This makes the point very well, great job. It is a common red flag for UI designers to be unaware of different types of users, especially expert users and expert interfaces (which exist in all fields), and to assume that all products are aimed at beginners and on-ramping new users. I've seen plenty of them blow an interview with these kinds of opinions, including at companies that build expert products (with expert, non-discoverable, interfaces).
    My gut says it is the result of so many UI jobs being solely focused on inbound web leads and sales/sign-up funnels and little experience with other classes of user, and probably Apple's massive influence, but I'm not sure.
    It makes for great screening questions at least, but hopefully it will stop being so effective someday.

  • @marvinfariasrodrigues
    @marvinfariasrodrigues 5 месяцев назад

    Entered the video trying to figure if it worth using vim and learned a lot of other useful stuff.
    Thanks for the video!

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

    The best explanation I've heard yet. This went to my favourites and I'll use it to (hopefully) settle some of those notorious Nano vs Vim debates :)

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

    Your channel is a hidden gem, you should make more random videos like this.

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

      Since you are productivity focused: any thoughts on Obsidian? I've been trying it (in VIM mode of course), and it's pretty expressive (with low discoverability). Kind of a solution that better addresses your note taking video from a couple years ago.

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

      Obsidian is great! I like it because it allows you to keep hold of your data while offering ancillary services. It's the perfect business model for people who like to keep control of personal data.

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

      @@FunctionalIndustries Can you make a video on how you use it? Your take on how to use it is probably very unique and valuable!

  • @nikfp
    @nikfp Год назад +3

    I think this is mostly true, but I've found with Neovim that there is a point past "expressiveness" where you can reach "discoverable expressiveness". Case in point: in my current setup I can both configure it any way I could ever imagine, and I also have fuzzy finding search tools for files, words in files, keymaps, help documents for Neovim core and plugins, etc. It's all within easy reach, so the further I go, the more discoverable it becomes. Couple that with the ability to set it up exactly how I want it to work and it becomes a very intuitive user experience that "gets out of the way" and lets me translate thought to code with much less friction. It was never about speed for me, it was about getting the point I'm at now. And I am very happy with it.

  • @Max-bh8tg
    @Max-bh8tg 2 года назад +4

    The main benefit is that you don't need to be an electron goblin anymore.

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

    I don't think drawing a line between discoverability and expressiveness is really accurate here.
    You need a 2 dimensional plot, one axis is discoverability, the other is expressiveness. In this plot, there's a line connecting "maximum expressiveness, little discoverability" and "maximum discoverability, little expressiveness". This is the "optimal trade-off line".
    Poor user interface can put a user interface below the "optimal trade-off line"; it is possible to build a user interface that's both non-discoverable and non expressive, but a user interface that's above the "optimal trade-off line" is unachievable, because, as you rightly said, as you improve expressiveness, you often has to sacrifice discoverability and vice versa.

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

      Yea, I'd be happy with a 2d representation. It's not 100% true that it's a spectrum between the two but I guess I was sacrificing correctness for clarity. I guess the point I was trying to make is that expressiveness in an interface is important for professional tools and often comes at the cost of discoverability.

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

    best explanation ive come so far about this subject on Vim VS anything-else

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

    Once you spent some time with vim basics in starting days you will never forget to use it,
    it's like learning bicycle, once you learn it even you drive after 3 years, your muscles knows what to do.
    I use it after 3 years my fingers knows what keys to press and stay on alphabet keys for all work.

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

    Great video again! Love seeing a new video from you, instant must watch

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

    Nice videos! Great format: the presentation with the beautiful live background! And the videos content is awesome! Please keep up!

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

    Thanks for the video! At a time when the internet community is debating with violence and lack of humanity, your calm and thoughtful way makes a difference. I'm glad someone like you is standing up for Vim

  • @tobias-edwards
    @tobias-edwards 2 года назад +1

    Crystal clear voice, must be from all those clouds you're inhaling

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

    I just discovered your channel so I don't know if you ever tried it. But with that soothing voice and general setup I would love to listen to longer videos, quite in a podcast setup. I don't know if it would work but I can assure you would have at least one listener!

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

    My immediate thought when reading the video title was, "Why bother learning the piano when we have these perfectly functional tin cans we can bang on to produce sounds."

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

      As a drummer, I kind of feel like you are looking for trouble buddy. :)

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

    I think this video best puts into words how to explain my decision to switch over to vim. I'd say, I got tired of VSCode bloat (went too down far the discoverability tunnel) but his explanation sounds much nicer!

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

    Amaizing video.
    Really nice and simple comparison, that it is easy to understand.

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

    Such tweets are typical toxic ignorance of the people: blame without investigation. I just don't put attention to such toxic people anymore, and my life became better. Thanks for video's author who spent his own time to make such a great answer! But as for me I try to avoid such toxic ignorant people.

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

    You're brilliant!!!

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

    The reason I am debating getting into VIM is the ability to work on a server that doesn’t have a desktop UI

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

    Sometimes, an engineer designed user interface just makes the most sense, prettiness sometimes comes at the cost of efficiency and functionality -- vim user here, well neovim mostly

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

    Vanilla GNU emacs is pretty user friendly in regards of discoverability. 🙃

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

      It's kinda funny. I fell into the meme of "I can't quit vim", but not with vim. I fell into it with vanilla emacs. Granted, this was bad terminal emacs built into macos years ago.
      Now I have an evil mode config that allows me to switch between vim and emacs fluidly.

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

    Expression is a good way of putting it. I mean it's like musical instruments ... which are not designed to make it easy for beginners primarily. They are designed for those who have the patience to make them essentially part of their body , or muscle memory. And then magic can happen :)

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

    Simple yet powerful video, just like vim ;)

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

    Nice analysis 👍.

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

    Agree!

  • @yash1152
    @yash1152 5 месяцев назад

    0:24 _"is cancer. Avoid it ... created their own cult."_
    this part applies to another TUI editor which calls itself "post modern" imo too.

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

    I like your reasoning.

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

    Vim is not just a tool, it's completely life-changing.

  • @tanko.reactions176
    @tanko.reactions176 7 месяцев назад

    vim and i3wm are the best things that ever happened to computers.

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

    Great video

  • @sanjeetkumar-np6up
    @sanjeetkumar-np6up Год назад

    UPDATE :- vim9 has new scripting language which is fast and resembles general purpose language. :)

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

    I like your voice! Thanks for the video!

  • @Little-bird-told-me
    @Little-bird-told-me 2 года назад

    Classy !

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

    Still the same wallpaper?

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

    great points

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

    Totally agree.

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

    Hex cameo.

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

    Where did you get that background?

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

    You have such a smooth voice! lul

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

    We need a word for people who could use these kinds of editors to their fullest
    I offer texttitian

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

    day.

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

    man vim
    .

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

    I remember when there was only vi, then came vim with all these new features, then nvim. I loves me some cancer.

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

    My setup is vscode with the neovim extension. In this case, I get to have both discoverability and expressiveness (former from vscode, latter from neovim)

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

    :-D

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

    Rather than all those fancy words it would have been a lot quicker and easier to just say... one text editor (vim or neovim) are complex editors and will need lots of time to just learn how to do basic things but if you stick with it then eventually you may be able to do more things more quickly than what you would in most other text editors... however if you think you will not be able to put in the learning time then go grab a more user friendly text editor like VSCode, UltraEdit, Notepad++, EmEditor or one of many other text editors out there.

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

      Were the fancy words too difficult for you?

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

      @@FunctionalIndustries no, but making something sound more complex than it needs to be can put people off... learning any text editor is like learning anything else, the more you put in, the more you get out... my favourite is Emacs, having to switch modes i always thought was a drag, not only that but once you've switched modes some of the default keys are not exactly well thought out, except for obvious ones like w for word, but then you have '*' to search for the word under the cursor, what the hell is that all about! No thanks

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

    At least you are not wasting your time with emacs...but with vim or neovim...they are all backward tools..Productivity has NO link with a programmer editor. Typing garbage faster is producing garbage faster..those tools are totally inadequate to do refactoring, badly design solutions for code completion, endless stream of plugins or scripts...mostly unmaintained, emacs being the worst here by a mile...
    Looking at neovim I can already a sea of bad lua code....

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

    i don't think this video actually answered the question posed. for your example at 3:55, this is what i fundamentally don't understand about vim.
    first of all, i don't believe vim even has a motion to even go to the start of a paragraph, } takes you to the END of the next paragraph. sure you can maybe chain some motions together, but then that defeats the whole productivity benefit right?
    secondly, what is the use case for such a contrived example? who is out here counting Fs in their document, without miscounting, and jumping to the exact F they want? and what are they doing afterwards? i see these same sort of strange examples in almost every video about vim, like "delete 20 lines at once" - ok, sure 20dd does the trick but you'll need to do maths just to calculate how many lines to delete. dunno about you but I don't sit there counting lines when I'm getting work done.
    if we're talking about expressiveness, these are not the kind of commands i would want to express as a programmer, so vim makes no sense to me. most of what I'm doing in say vscode or jetbrains or whatever is typing, linting, refactoring, compiling, and running, not text acrobatics. the only text movement I'd generally want is to move up a block/line/character or edit stuff inside an enclosing block, and those already have built in shortcuts in any editor nowadays

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

      { takes you to the previous paragraph, whereas [{ takes you to the beginning of the current block, between either of those you should get the behavior you want.
      Chaining a bunch of motions together can still be efficient, or fast if nothing else. In vim the only limiting factor is your muscle memory and typing speed. Though I can see it not being very friendly to users who aren't at least decent at (touch-) typing. If you don't see yourself using the keyboard a lot, then there's really no point to using vim either.
      If you insist on working with line numbers (which you really don't have to) I would recommend :set relativenumber, so you don't have to do any of that counting you were complaining about. If you set both number and relativenumber it will still show you the absolute number of the line you're currently on, which is handy. Though the status bar tells you where you are in your file as well. But again, I don't find operations involving line counts that useful either so I mostly don't use them, which is fine. Vim is there for you to not use most of it's features and still have a good experience.
      As for all the things you actually use your IDE for, that's where vim plugins come in. Sure, it's a hassle to set up, while an IDE comes mostly already preconfigured, but in turn you get to eventually have your own, personal development environment that fits you like a glove.
      And lastly, I also just find using vim to be a lot of fun. It's like trying to get better at a cool video game, except you're actually coding or writing text, how awesome is that?? I think ppl maybe don't take that seriously enough, but getting to feel awesome and powerful (and yes, like a cool l33t hacker or whatever) while doing otherwise fairly mundane work is a huge benefit imo

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

      @@cyberdrace I'm fine with installing plugins, i just don't see a massive productivity increase with vim or vim motions. i can type up to 100wpm and my keyboard only has blank keycaps, touch typing isn't really an issue for me.
      the only use case i can really appreciate is if you need to ssh into some server that only has vi(m) installed and just want to edit a file quickly and get out. but at this point I've learnt enough to do that

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

      You don't even have to count lmao that's why relative line numbers is a thing. Read the docs lol

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

      @@loarca11 ReAd tHe DocS how about touch grass
      why would i read docs for software i'm not using lmao, genius. secondly, you didn't even read my comment, relative line numbers won't help you find the 6th F in a line. third, vim is trash

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

    This video is bs. I used vim for a long time and most of the complex features it offers is unlikely to be used in 99% of time. I never need to go to “third letter of word” I do need to change word or find and change all similar words at same time and most of features like that are executed in a much better way in sublime