How to turn Vim into a powerful and beautiful IDE | Jess Archer, Vimconf 2021

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.ย. 2024
  • In this talk I will show you my approach for configuring stock Neovim with essential settings, keymaps and plugins to achieve context-aware code completion and code navigation. As well as workflows for refactoring, testing and git. I'll also show you how I keep my config file clean and maintainable!
    Streamed live at Vimconf 2021 - www.vimconf.live

ความคิดเห็น • 94

  • @stoicfloor
    @stoicfloor 2 ปีที่แล้ว +23

    The biggest takeaway for me is your plugin management: making a separate file for every plugin. Brilliant! Just subscribed and thank you for this vim talk!

  • @yojansh
    @yojansh 2 ปีที่แล้ว +123

    It feels like every vimmer go through this phase where they tweak their configs for years and realize that it's getting a bit ridiculous. It almost feels like it's the rite of passage or something. Anyway, thank you for giving this talk and showing how to better organize them.

    • @briumphbimbles
      @briumphbimbles 2 ปีที่แล้ว +5

      Its almost as if you could just have used a better application (shock horror)

    • @yojansh
      @yojansh 2 ปีที่แล้ว +15

      @@briumphbimbles like vim? My lack of care on config organization doesn't automatically make vim a bad application. And you'd have to take vim out of my cold dead hands. It took some time for me to get used to it but it's worth every single moment of them. No regrets.

    • @briumphbimbles
      @briumphbimbles 2 ปีที่แล้ว +11

      @@yojansh I didnt say it was bad but it is completely mastubatory almost all of the time.
      I like it but it doesn't seem to make writing code easier or faster in almost all cases and the portability argument goes out of the window as soon as you start needing extensive configuration.
      Use what ever you want but anything that comes with a cult like dogma or fetishism should probably be viewed with as much suspicion.

    • @yojansh
      @yojansh 2 ปีที่แล้ว +5

      ​@@briumphbimbles masturbatory is a strong word. Overzealous maybe.
      And I disagree that it doesn't make you code faster. I see night and day difference when I have to work on my work IDE vs my personal projects working in n/vim. Just having to not worry about mouse makes navigating code that much faster. On top of that, my terminal is my IDE so it gels well with my workflow. And double disagree on portability. I use dotfiles which is just one git push away from being portable.
      It's true that you have put in lot of upfront work to fully understand vim and turn it into more productive code editor but that's the part of journey that I was initially talking about. The upside of that is you will eventually truly know your editor and have it just the way you want it which, not a lot of other "better" applications offers and that to me is important.

    • @briumphbimbles
      @briumphbimbles 2 ปีที่แล้ว +2

      ​@@yojansh It was deliberately provocative yeah but yeah overzealous is maybe more appropriate.
      I wasnt talking about you in the specific use of the word I was talking about in general when I have watched people use it it hasnt improved their coding speed but actually been a relative hindrance when compared to people who dont.
      It may have improved their speed relative to their speed in other applications though that is a bit of an unknown quantity.
      Yeah ok but other IDEs can store their configuration in git too my editor has an extension that automatically synchronises my changes across machines logged into with my github login.
      I think that upfront work is a false economy. What you are essentially saying is you are forced into filling the gaps of the application and configuring it to your liking so you end up learning it. But you would also do the same if you learned the feature-set or customised any other software right?
      As I said I like Vim but I like it in theory more than I like it in practice and no amount of chasing the dragon of a perfect Vim configuration got me as close to a good development experience as some stock editors/ ides.

  • @dharminb
    @dharminb 2 ปีที่แล้ว +22

    0:00 Intro
    2:15 Old vimrc
    3:00 Step 1 (commit your dotfiles)
    4:40 Step 2 (configure your terminal)
    8:00 Rules for new vimrc
    9:10 New vimrc (general settings)
    11:00 New vimrc (key maps)
    13:00 New vimrc (plugins)
    19:35 CoC plugin
    24:13 Projectionist plugin
    26:22 Vim-test plugin
    28:14 Final thoughts

    • @heljhumenad
      @heljhumenad 4 หลายเดือนก่อน

      Absolutely Brilliant man

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 2 ปีที่แล้ว +4

    Certainly , using vim is a tremendous achievement. Most of my friends are vim addicts and can't think about anything else. I am glad that they are not alone.

  • @markring40
    @markring40 2 ปีที่แล้ว +1

    Thanks for sharing this. I came across it a few weeks ago. I started programming is the mid-seventies with BASIC. We would agonize over writing a few lines of code. Then we transferred our code to a punch tape. The tapes were rolled up and secured with paper clips. Then delivered after school to our district's office, where they were loaded into the mainframe. The next day we would connect to that computer via a 2400 baud modem and run our code. Almost forty years later I still just putz with coding, However, after seeing your VIM config and using it on my Neovim setup I'm all fired up to get started again. The way you have things set up is perfect for my workflow and thought process. One can tell you've put a lot of time and effort into this. Thank you again Jess!! Have a good holiday season.

  • @duruiz
    @duruiz 7 หลายเดือนก่อน

    This is gold! even being a little outdated (I'm looking at your dotfiles) this is a great :)

  • @beast4000
    @beast4000 2 ปีที่แล้ว +7

    Awesome config and talk! now there’s so much I need to implement myself 😄

  • @SudeeptoDutta
    @SudeeptoDutta 2 ปีที่แล้ว +9

    Amazing setup. Absolutely loved the font, color and plugin setup. I've been using vim passively to edit some files from command line so never fully invested in it. I used to use Linux but now do most of my programming on MacOS
    But now I've setup my linux machine and setting up i3 wm and other things. Given you're so methodical with your vim setup, I assumed you must be using a tiling WM as well 😄. But if Gnome works for you, that's great as well.
    Will look into your vim setup for inspiration.
    Thank you.

  • @BlindRambler
    @BlindRambler 2 ปีที่แล้ว +4

    Will be sticking around to see what this channel turns into. Awesome config, very clear explanation and you touch on things that not many others do. I also saw that you run Linux on another comment, so that's another reason to stick around even if this isn't a Linux channel. I know it's not a good reason, but it is a reason.

  • @johnmcway6120
    @johnmcway6120 2 ปีที่แล้ว +1

    Thanks tons. This gave me confidence that this can be done but it's not something one should attempt to do in a day. This is my second year after discovering VIM.

  • @garchomp2222
    @garchomp2222 2 ปีที่แล้ว +1

    You have given me new vision as to what vim can be. Thank you!

  • @mfandrade
    @mfandrade 9 หลายเดือนก่อน

    Absolutely great video! Thanks!

  • @iilugs
    @iilugs 2 ปีที่แล้ว

    Really liked this video! I like the fast pace, it's really refreshing.

  • @rsmith31416
    @rsmith31416 2 ปีที่แล้ว +4

    12:21 If you want to keep indenting your previous selection, you can use the single-repeat command (".") instead.

    • @ovi1326
      @ovi1326 2 ปีที่แล้ว

      Yes, but a cool use case for auto reselect after indent is when you want to indent a bunch of nested blocks and it's nicer this way, rather than reselecting everything manually.

    • @rsmith31416
      @rsmith31416 2 ปีที่แล้ว

      @@ovi1326 I'm not sure if I follow the description of your use case, because indenting nested lines works with single-repeat without reselecting anything. In fact, you can combine < or > with text motions to do the same and then simply type "." as needed.

  • @zzzzzz1039
    @zzzzzz1039 2 ปีที่แล้ว +1

    Wish I didnt have to miss this, but awesome presentation. Looking forward to more insight from you.

  • @jacknemitz1702
    @jacknemitz1702 2 ปีที่แล้ว

    Love this video! I hope to be seeing more content from you soon!

  • @PromptStreamer
    @PromptStreamer ปีที่แล้ว

    Awesome video, your setup is beautiful, you clearly have a very natural, strong aptitude for making things conceptually clear, simple and usable in terms of design and very aesthetically pleasant as well. However, if you edited this video down to key bullet points and made it shorter, it could be a lot more watchable. Thanks very much.

  • @korniychuk
    @korniychuk 2 ปีที่แล้ว

    Super cool!

  • @virkony
    @virkony 2 ปีที่แล้ว +4

    That gf re-binding is something that I was missing also. But that binding with doesn't work same way as default binding if file you navigate from is on a different (absolute) path and file navigated to is nearby one.
    Default gf looks through several paths, I guess.

  • @hdubbs9174
    @hdubbs9174 ปีที่แล้ว

    Thanks for showing your config(s). I may have missed it, but how do you adjust the linespace in neovim? Or did you adjust it in kitty?
    Best wishes,
    Hannah
    Edit: Nevermind, I saw that you adjust "line height" in your kitty config.

  • @kingivan1151
    @kingivan1151 2 ปีที่แล้ว +5

    What distro are you running? Your setup looks great!

    • @TroJanBerk
      @TroJanBerk 2 ปีที่แล้ว +1

      DE absolutely looks to be gnome

    • @r-iliass9587
      @r-iliass9587 2 ปีที่แล้ว +8

      distros don't matter, this is a gnome desktop environment, you can install any desktop environment on any distro

  • @wata1991
    @wata1991 2 ปีที่แล้ว

    would love to see a video of you breaking down your Nvim config in Lua! Saw your repo updated a week ago :D

  • @thanhtupham4726
    @thanhtupham4726 2 ปีที่แล้ว +3

    Thank for your sharing, What do you think is better iterm2 or Kitty ?

    • @jessarcher
      @jessarcher  2 ปีที่แล้ว +2

      I'm on Linux so iTerm2 isn't an option for me, but I do know MacOS users that like Kitty.

  • @artemrusinov3034
    @artemrusinov3034 2 ปีที่แล้ว

    This is really cool. I'm doing php development too. Your setup is soo cool!

  • @peteryates308
    @peteryates308 2 ปีที่แล้ว

    Kitty, Jetbrains Mono, Dracula, Tmux, Neovim and GNOME - this overlaps *so much* with my setup!

  • @txusinbilbo
    @txusinbilbo 2 ปีที่แล้ว

    Thanks for sharing al this stuff. Very appreciated 👍

  • @k1mpman
    @k1mpman 2 ปีที่แล้ว

    Amazing video, gonna take a lot of inspiration from this. Thanks a bunch

  • @tralphstreet
    @tralphstreet 2 ปีที่แล้ว +15

    "How to turn vim into a poweful IDE"
    so anyway here's my entire life story

    • @DanielBrownsan
      @DanielBrownsan 2 ปีที่แล้ว

      I got about five minutes in before I gave up.

  • @DavidCSaint
    @DavidCSaint 2 ปีที่แล้ว

    Love entering this wormhole

  • @3moluvr
    @3moluvr 2 ปีที่แล้ว

    I love this, thank you for sharing!

  • @IgnatikVodichka
    @IgnatikVodichka 2 ปีที่แล้ว

    Wow! This is so cool and you are so cool!
    Could you please drop a tutorial how to implement all of this for a beginner?

  • @robot01001
    @robot01001 2 ปีที่แล้ว

    I learned so much from this one video! Question, though - since you have multiple Vim instances running in different tmux windows, do you use Vim sessions to save / restore files?

  • @jmichot1
    @jmichot1 2 ปีที่แล้ว

    Thank you for this amazing tool, time to update my dotfiles :D

  • @gorye8730
    @gorye8730 2 ปีที่แล้ว +1

    what video about getting around tmux did you reference?
    do you mind sharing a link?

    • @aragalie
      @aragalie 2 ปีที่แล้ว

      th-cam.com/video/bdumjiHabhQ/w-d-xo.html

  • @kkjelgaard
    @kkjelgaard 2 ปีที่แล้ว +3

    All the vim python IDE plugins I tried initially seemed fragile and annoying to work with so I eventually settled into a more stripped down setup as well. I find that vim with nerdtree, syntax highlighting, and a leader command to run code is good enough for most scripting, but anything with modules, or data+figures I need a desktop IDE.

  • @ryanlzp5374
    @ryanlzp5374 2 ปีที่แล้ว

    Hey Jess, loved the video, how do you make that sweet banner of your initials? Thanks!

  • @thomasr22272
    @thomasr22272 2 ปีที่แล้ว

    Amazing thank you!!

  • @matthiasdebernardini3388
    @matthiasdebernardini3388 2 ปีที่แล้ว +2

    Are you gonna update to lua based config?

  • @PerisMartin
    @PerisMartin 2 ปีที่แล้ว

    Me: (Enters the comments section)
    Me: (Shouts) Emacs forever!!!
    Me: (Takes cover)

  • @royerguerrerop5982
    @royerguerrerop5982 2 ปีที่แล้ว +1

    What plugin use for manage the buffers like a tabs?

  • @BenceFerdinandy
    @BenceFerdinandy 2 ปีที่แล้ว

    She mentioned somewhere a plugin that figures out the correct tab settings from something. What was it? I can't seem to find it without watching the entire video again.

  • @DanielBrownsan
    @DanielBrownsan 2 ปีที่แล้ว

    I'm 4 minutes in and the most relevant or interesting thing I've seen is Michael Scott ASCII art.

  • @midnightinsane6893
    @midnightinsane6893 2 ปีที่แล้ว +8

    Wow, you are the first woman I have ever seen to use vim, so cool!

    • @bobd2028
      @bobd2028 2 ปีที่แล้ว +1

      "Woman" lol

  • @voomastelka4346
    @voomastelka4346 2 ปีที่แล้ว

    I'm impressed, finally you can rename a variable in vim. What an achievement, other IDE-s and perhaps even Emacs has to now implement that, too.

  • @edgepixel8467
    @edgepixel8467 2 ปีที่แล้ว +4

    What's an IDE?

    • @Tymon0000
      @Tymon0000 2 ปีที่แล้ว +5

      integrated development environment

  • @adityams1659
    @adityams1659 2 ปีที่แล้ว

    *Whats the Gnome themes, icon you are using?*

  • @florianhennig4778
    @florianhennig4778 2 ปีที่แล้ว

    The talk was good and the explanations where great. But I have to say, that the title is somewhat misleading because even with this setup the "I" in IDE is missing because the setup isn't really integrated. While "just writing code" might work if one is doing PHP, this might be fine but on languages like C++ or Java its still a huge PITA to get somewhat productive when using vim. While it might be good to run "make" on a float- or toggle term it is still lacking the feature to automatically jump to the first error. Also directly running a program is kind of hard, especially if you want to pass some commandline arguments or env variables to the executable. And don't get me started on debugging... I know that something like nvim-dap exists, but this is also not easy to configure.

  • @gamerboy4566
    @gamerboy4566 2 ปีที่แล้ว

    Wow! Here I was thinking that only emacs users tend to have such long init.el files. How wrong I was!

  • @_dinesh
    @_dinesh 2 ปีที่แล้ว

    and coding in vim increases your productivity? 🤔

  • @andherium
    @andherium 2 ปีที่แล้ว

    20:27 is that a vim search menu or a rofi ?

  • @cumar8585
    @cumar8585 2 ปีที่แล้ว

    there are no url to github config

  • @theyreMineralsMarie
    @theyreMineralsMarie 2 ปีที่แล้ว

    I like Vim for it's simplicity. I use it when I just want to make changes to a single file irrespective of environment or file format. That being said, something like Spring would be a nightmare to configure in Vim. Every well made tool has it's purpose.

  • @somebodyoncetoldme1704
    @somebodyoncetoldme1704 2 ปีที่แล้ว

    Can you create timestamps?

  • @michaelrider
    @michaelrider 2 ปีที่แล้ว

    Php. People still use that?

  • @jayartist_
    @jayartist_ 2 ปีที่แล้ว +3

    I don't get why people still loses tons of time configuring and patching vim existing vscode

    • @johnAntoine
      @johnAntoine 2 ปีที่แล้ว

      Well, don't know about everyone, but I personally can't stand VScode for some reason, too much clutter in the UI, too much potential to slow down, and the need to use the mouse for me felt somewhat unintuitive when my main goal was to edit text. I use BOTH vim and emacs, each one serves a purpose, and I got to this point after using Atom, then VScode, then back to Atom. Oh and VIM emulation in VScode doesn't feel right for some reason.

    • @jayartist_
      @jayartist_ 2 ปีที่แล้ว +1

      @@johnAntoine There is no need to even touch the mouse in VSCode if you don't want to. I myself don't even touch the mouse at all while coding at Zen mode view.

    • @johnAntoine
      @johnAntoine 2 ปีที่แล้ว +1

      @@jayartist_ opening files, navigating your file system, opening the integrated terminal, switching between open terminals, among other things, were either not convenient or impossible to use the keyboard for.
      If this is not the case anymore then VScode must have changed since i last used it more than 2 years ago. Back then, if exclusive keyboard navigation was possible, it certainly wasn't convenient
      VIM can be set up on a toaster, and it'd most probably run fine. That's maybe the draw for many developers.

    • @aquepaique
      @aquepaique 2 ปีที่แล้ว

      @@jayartist_ in vscode is mandatory to use mouse.

  • @pnuema1.618
    @pnuema1.618 2 ปีที่แล้ว

    That audio error was recursion at its finest! load up that stack.

  • @KrzysztofDanielCiba
    @KrzysztofDanielCiba 2 ปีที่แล้ว

    Eazy. Switch it off and install emacs. :-)

  • @nikoladd
    @nikoladd 2 ปีที่แล้ว

    Pretty impressive ... but this VIM is as laggy as vscode, which is my primary issue with vscode anyway.
    P.S. Also this whole scheme is not applicable for remote development, unless a full blown Xwindows system is set up both on client and server.

    • @BenceFerdinandy
      @BenceFerdinandy 2 ปีที่แล้ว +1

      Why would you need a full blown X? Everything ran in the terminal, you just need to have all these plugins also installed on your remote vim.

  • @kakugan
    @kakugan 2 ปีที่แล้ว

    respondingj to messages over and over during a talk is very distracting. just wrong.

  • @amigo4884
    @amigo4884 2 ปีที่แล้ว +1

    It is not vim, but neovim. Be precise in your definitions, sweet neo boy.

  • @jeanrodrigues6249
    @jeanrodrigues6249 2 ปีที่แล้ว

    Floppy

  • @assaf416
    @assaf416 2 ปีที่แล้ว

    it so funny to see you kids trying to work with VI.. see, in my time, VI was all we had.. and we were dying to move out of it to "modern" editors....

  • @sumonarosner4674
    @sumonarosner4674 2 ปีที่แล้ว

    If all you have is a hammer....

  • @frankylorem2600
    @frankylorem2600 2 ปีที่แล้ว

    Does she have a voice-activated sewing machine?

  • @aledmb
    @aledmb 2 ปีที่แล้ว

    people like to suffer, i see.