Тёмный

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

Jess Archer
Подписаться 2 тыс.
Просмотров 122 тыс.
50% 1

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

Опубликовано:

 

9 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 94   
@dharminb
@dharminb 2 года назад
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 3 месяца назад
Absolutely Brilliant man
@stoicfloor
@stoicfloor 2 года назад
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 года назад
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 года назад
Its almost as if you could just have used a better application (shock horror)
@yojansh
@yojansh 2 года назад
@@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 года назад
@@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 года назад
​@@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 года назад
​@@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.
@kamertonaudiophileplayer847
@kamertonaudiophileplayer847 2 года назад
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 года назад
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.
@johnmcway6120
@johnmcway6120 2 года назад
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.
@duruiz
@duruiz 7 месяцев назад
This is gold! even being a little outdated (I'm looking at your dotfiles) this is a great :)
@beast4000
@beast4000 2 года назад
Awesome config and talk! now there’s so much I need to implement myself 😄
@mfandrade
@mfandrade 9 месяцев назад
Absolutely great video! Thanks!
@rsmith31416
@rsmith31416 2 года назад
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.
@SudeeptoDutta
@SudeeptoDutta 2 года назад
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.
@garchomp2222
@garchomp2222 2 года назад
You have given me new vision as to what vim can be. Thank you!
@virkony
@virkony 2 года назад
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.
@iilugs
@iilugs 2 года назад
Really liked this video! I like the fast pace, it's really refreshing.
@BlindRambler
@BlindRambler 2 года назад
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.
@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.
@zzzzzz1039
@zzzzzz1039 2 года назад
Wish I didnt have to miss this, but awesome presentation. Looking forward to more insight from you.
@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.
@thanhtupham4726
@thanhtupham4726 2 года назад
Thank for your sharing, What do you think is better iterm2 or Kitty ?
@jessarcher
@jessarcher 2 года назад
I'm on Linux so iTerm2 isn't an option for me, but I do know MacOS users that like Kitty.
@kingivan1151
@kingivan1151 2 года назад
What distro are you running? Your setup looks great!
@TroJanBerk
@TroJanBerk 2 года назад
DE absolutely looks to be gnome
@r-iliass9587
@r-iliass9587 2 года назад
distros don't matter, this is a gnome desktop environment, you can install any desktop environment on any distro
@jacknemitz1702
@jacknemitz1702 2 года назад
Love this video! I hope to be seeing more content from you soon!
@korniychuk
@korniychuk 2 года назад
Super cool!
@gorye8730
@gorye8730 2 года назад
what video about getting around tmux did you reference? do you mind sharing a link?
@aragalie
@aragalie 2 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-bdumjiHabhQ.html
@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
@3moluvr
@3moluvr 2 года назад
I love this, thank you for sharing!
@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.
@royerguerrerop5982
@royerguerrerop5982 2 года назад
What plugin use for manage the buffers like a tabs?
@mushyclicks2028
@mushyclicks2028 2 года назад
vim airline
@matthiasdebernardini3388
@matthiasdebernardini3388 2 года назад
Are you gonna update to lua based config?
@yulducksung7947
@yulducksung7947 2 года назад
+1
@peteryates308
@peteryates308 2 года назад
Kitty, Jetbrains Mono, Dracula, Tmux, Neovim and GNOME - this overlaps *so much* with my setup!
@artemrusinov3034
@artemrusinov3034 2 года назад
This is really cool. I'm doing php development too. Your setup is soo cool!
@adityams1659
@adityams1659 2 года назад
*Whats the Gnome themes, icon you are using?*
@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
@jmichot1
@jmichot1 2 года назад
Thank you for this amazing tool, time to update my dotfiles :D
@kkjelgaard
@kkjelgaard 2 года назад
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.
@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?
@DavidCSaint
@DavidCSaint 2 года назад
Love entering this wormhole
@thomasr22272
@thomasr22272 2 года назад
Amazing thank you!!
@_dinesh
@_dinesh 2 года назад
and coding in vim increases your productivity? 🤔
@edgepixel8467
@edgepixel8467 2 года назад
What's an IDE?
@Tymon0000
@Tymon0000 2 года назад
integrated development environment
@ryanlzp5374
@ryanlzp5374 2 года назад
Hey Jess, loved the video, how do you make that sweet banner of your initials? Thanks!
@cumar8585
@cumar8585 2 года назад
there are no url to github config
@andherium
@andherium 2 года назад
20:27 is that a vim search menu or a rofi ?
@BenceFerdinandy
@BenceFerdinandy 2 года назад
It's fzf.
@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?
@somebodyoncetoldme1704
@somebodyoncetoldme1704 2 года назад
Can you create timestamps?
@tralphstreet
@tralphstreet 2 года назад
"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.
@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.
@midnightinsane6893
@midnightinsane6893 2 года назад
Wow, you are the first woman I have ever seen to use vim, so cool!
@bobd2028
@bobd2028 2 года назад
"Woman" lol
@gamerboy4566
@gamerboy4566 2 года назад
Wow! Here I was thinking that only emacs users tend to have such long init.el files. How wrong I was!
@michaelrider
@michaelrider 2 года назад
Php. People still use that?
@jayartist_
@jayartist_ 2 года назад
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 года назад
@@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 года назад
@@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.
@DanielBrownsan
@DanielBrownsan 2 года назад
I'm 4 minutes in and the most relevant or interesting thing I've seen is Michael Scott ASCII art.
@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.
@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.
@PerisMartin
@PerisMartin 2 года назад
Me: (Enters the comments section) Me: (Shouts) Emacs forever!!! Me: (Takes cover)
@pnuema1.618
@pnuema1.618 2 года назад
That audio error was recursion at its finest! load up that stack.
@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 года назад
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.
@KrzysztofDanielCiba
@KrzysztofDanielCiba 2 года назад
Eazy. Switch it off and install emacs. :-)
@kakugan
@kakugan 2 года назад
respondingj to messages over and over during a talk is very distracting. just wrong.
@frankylorem2600
@frankylorem2600 2 года назад
Does she have a voice-activated sewing machine?
@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....
@amigo4884
@amigo4884 2 года назад
It is not vim, but neovim. Be precise in your definitions, sweet neo boy.
@jeanrodrigues6249
@jeanrodrigues6249 2 года назад
Floppy
@sumonarosner4674
@sumonarosner4674 2 года назад
If all you have is a hammer....
@aledmb
@aledmb 2 года назад
people like to suffer, i see.
Далее
My Forever Dev Workflow
16:02
Просмотров 88 тыс.
Let Vim Do the Typing
32:07
Просмотров 213 тыс.
ДОМИК ДЛЯ БЕРЕМЕННОЙ БЕЛКИ#cat
00:45
Tmux has forever changed the way I write code.
13:30
Просмотров 981 тыс.
Neovim, with Jess Archer
1:03:02
Просмотров 3,5 тыс.
Vim: Vim as an IDE (VimConf 2020 Talk)
1:06:30
Просмотров 117 тыс.
10 Advanced Vim Features (You Probably Didn't Know)
21:47
So You Think You Know Git - FOSDEM 2024
47:00
Просмотров 1,1 млн
My Favorite Vim Tricks
14:39
Просмотров 181 тыс.
Advanced Vim Workflows
10:41
Просмотров 83 тыс.
ДОМИК ДЛЯ БЕРЕМЕННОЙ БЕЛКИ#cat
00:45