Mastering the Vim Language

Поделиться
HTML-код
  • Опубликовано: 19 июн 2024
  • Chris Toomey talks about mastering the Vim language. Vim's core is the amazing command mappings and text objects that allow for countless combinations to define precise edits. Learn how to master the built-in commands, motions, and text objects, and even how to extend the Vim language for even more power!
    Slides: ctoomey.com/mastering-the-vim...
    Learn more from the developers at thoughtbot ⌨️
    Head over to tbot.io/dev-blog to read more great articles on our blog.
  • НаукаНаука

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

  • @aprameyanaganur2934
    @aprameyanaganur2934 3 года назад +282

    The thing thats special about vim as a text editor is that people who use it hold entire meetups about it

    • @strictnonconformist7369
      @strictnonconformist7369 2 года назад +26

      Is it just an incredible text editor or a software-based religion?

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

      @@strictnonconformist7369 I would have said both, but vim is not so much a religion as it is a way of life

    • @ansonc9218
      @ansonc9218 2 года назад +28

      @@aprameyanaganur2934 ah so a cult got it

    • @johnyepthomi892
      @johnyepthomi892 2 года назад +12

      vim is for consistency in your writing or editing process. Say what you want about it but it’s usefulness cannot be questioned.

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

      @@johnyepthomi892 totally agree. I myself use vim as my text editor (well, neovim)

  • @abhishes
    @abhishes 4 года назад +477

    He matched his shirt with the VIM logo :)

  • @baovu4062
    @baovu4062 5 лет назад +630

    4:35 the language (basics)
    5:36 repeatable & undoable
    6:48 verbs/operators in vim
    8:21 nouns in vim - motions
    9:05 nouns in vim - text objects
    12:18 nouns in vim - parameterized text objects (find/search)
    16:33 where to learn/read
    18:35 tips for mastering the language
    20:35 relative number
    22:45 visual mode is a smell
    24:18 custom operators (from plugins)
    24:42 tpope/vim-surround
    26:02 tpope/vim-commentary
    26:48 vim-scripts/ReplaceWithRegister
    27:41 christoomey/vim-titlecase
    28:21 christoomey/sort-motion
    28:57 christommey/system-copy
    29:52 custom nouns (objects)
    30:03 michaeljsmith/vim-indent-object
    31:08 kana/vim-textobj-entire
    30:30 kana/vim-textobj-line
    both requires kana/vim-textobj-user
    32:15 ruby block
    33:30 Finding more custom text objects

  • @joshuarose20
    @joshuarose20 11 месяцев назад +21

    Even 8 years later, people are still finding great value in these videos. Cheers, Chris.

  • @victormartins-software3912
    @victormartins-software3912 4 года назад +124

    This talk was a huge break through for me: "Vim is a language where operators act on text objects." BOOOM thank you :D

  • @richard11935
    @richard11935 4 года назад +36

    I just woke up from a nap, left youtube on and now im learning a strange language.

  • @harleyburton8731
    @harleyburton8731 4 года назад +23

    5 years later, and this is still great stuff, it's all still accurate and current, and I still learned something I didn't know. That's Vim, isn't it?

    • @michaelthompson7217
      @michaelthompson7217 4 года назад +4

      Harley Burton “it’s all still accurate and current”
      Well it’s like 20+ years old 😂

  • @zapy422
    @zapy422 5 лет назад +47

    I also learned new youtube shortcuts trying to apply the commands here

  • @4am4i
    @4am4i 8 лет назад +14

    What a great dive into a Zen of VIm. And relative numbers is something that i was missing for so long not knowing it was there all the time

  • @NiallsSongs
    @NiallsSongs 4 года назад

    Talking on this subject, you have all the passion and enthusiasm and sincerity of a great artist talking about art.

  • @mmlvx
    @mmlvx 5 месяцев назад +1

    At 23:53 -- "Relative number's got you covered, absolutely" -- that made me laugh a lot. 😀

  • @tjbihh
    @tjbihh 7 лет назад +3

    Awesome talk: thank you! I've been using Vim for a few years and still learnt a bunch of stuff from this

  • @MmmBopsPops
    @MmmBopsPops 4 года назад +46

    Been using vim for well over 7 years now and still learned a lot from this. Like he said - never reach the ceiling.

  • @TonMachielsen
    @TonMachielsen 4 года назад +66

    I've been looking for a long time why I would have to learn vim and why people are so enthusiastic about it. This is the first video that explains exactly that instead of trying to convince me to use an archaic editor on my graphical OS. Very good video. Very clear. This makes learning vim a lot easier as well now that I understand this.

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

      Same here. Although I felt that I liked Vim, I could never understand why people chose it over something like vscode. I suspected the reason people chose and bragged about using Vim was largely due to ego, but I am finally seeing a clearer explanation which makes more sense to me.

  • @Scrumpylungs
    @Scrumpylungs 3 года назад +3

    24:20 "Now we get into the fun stuff" he says, 20+ mins into an incredibly fun talk! Already know by this point that I'm switching to vim full time 💯

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

    I have used vim for something around a year and a half and I love it, I knew with the diw and dip operations, but the cs" ' blew my head right off!

  • @antoniodosreisfeitosaneto7553
    @antoniodosreisfeitosaneto7553 4 года назад +64

    Vim is a great tool since .. ever. I woul add the 'z' core commands to the list of things I miss in every other editor I use. z puts the current line on the top of the screen. z- puts the current line as the last one of the screen. And z. scrolls the text so that the current line go the cneter of the screen. So useful for positioning text on the screen

    • @picosdrivethru
      @picosdrivethru 4 года назад +4

      @FichDichInDemArsch dont forget z. = zz but in half the time since you can hit z. almost at once ;D

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

      I didn't know there is a duplicate of zt(top) and zb(bottom), which does the same thing you described :)

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

      @@oredaze these 3 commands are there since the AT&T Unix System V in the 80's z. z and z-. There were no zt or zb so these may have been added later for some reason.

  • @ianpan0102
    @ianpan0102 5 лет назад +6

    Such a great speaker -- very calming and straight to the point.

  • @ammarm7
    @ammarm7 8 лет назад +40

    I love how passionate you are when explaining, thanks for the tutorial man

  • @varunrao2931
    @varunrao2931 4 года назад +8

    So clearly explained, very smooth presentation, talks about best practices, and core principles of vim

  • @KensterInSilico
    @KensterInSilico 6 лет назад +3

    Biggest takeaways were working with text objects and making commands repeatable. Great video. Thanks!

  • @josephmbimbi
    @josephmbimbi 4 года назад +5

    just wow !
    I've been using vim very casually here and there. I knew there was more under the hood but i wouldn't have thought that much.
    Time to practice to learn and incorporate those !

  • @sh1pme2themune9
    @sh1pme2themune9 4 года назад +1

    I think I’ve watched this four times now, and I learn something new each time.

  • @Kittana1498
    @Kittana1498 4 года назад +1

    This is a great talk. The way you described what makes it worth learning is so spot on. It applies to use of emacs as well!

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

    I've officially switched to (neo)vim this past week. My previous IDE of choice was IntelliJ IDEA so it was a huge jump and took me awhile to let go, but I finally did it and I'm so happy about it!

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

      The ideavim plugin is great for IDEA. vim is great but its not an IDE, and sometimes you need an IDE.

  • @SisiraSomaratne
    @SisiraSomaratne 3 года назад

    I lean his indentation so much easy. Before I used to select the part and use > . But now in any part of the line just > and j or 3j (if need to indent 3 lines). Thank you!

  • @digitus888
    @digitus888 7 месяцев назад +2

    Even after 8 years, this is still a great video (like the resources, Chris mentioned in the video). I‘ve watched it for about 4 times over the last year and every time it gives me some additional extra(I am using vim as my main editor for 14 years now). This is because it is packed so densely with information, it is almost impossible to get everything the first time. For a non native speaker, slowing down the video to 0.75 helps a lot 😉 Thanks Chris!

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

    Excellent overview with demonstrations. I have been using vim for about 2 years but learnt a lot of cool ideas. Thanks for sharing your experience

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

    This talk really gets into the soul of vim. Thinking about repeatabilty made a lot of sense.

  • @KeiranOLeary
    @KeiranOLeary 6 лет назад +20

    I reckon that this video is the best intro to vim I've found. It worked for me, and I've shared it numerous times, I believe it takes people from "interested" to "all in". So well done!!

  • @ArchitecturalAesthetics2046
    @ArchitecturalAesthetics2046 3 года назад

    didn't know about the indent, entire custom text objects, was suprised to find out it works out of the box with vscodevim. thanks for this talk.

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

    I watch it every months, and still have something to learn.

  • @Baalzemor
    @Baalzemor 9 лет назад +107

    Not sure if you have found this out by now or not, but I seen you delete a character, then type its lowercase for an example.
    If you hover the character, and hit ~ it will invert the case. It's pretty useful in my opinion!

    • @michaelbruce4987
      @michaelbruce4987 7 лет назад +2

      Nice!

    • @ianpan0102
      @ianpan0102 5 лет назад +2

      Thanks for the tip! Very useful!

    • @VictorRodriguez-zp2do
      @VictorRodriguez-zp2do 5 лет назад +1

      Wow I hace being using gUl or gul, I didn't know there was a faster way of doing it

    • @olegsergiyuk2219
      @olegsergiyuk2219 4 года назад +10

      Also try to hover the number, any digit within it and type "Ctrl-a" or "Ctrl-x", this will increase or decrease entire number accordingly.
      I was thinking can also be a cool feature to hover over word "true" for example, and be able to convert it to "false" :).

    • @isAif47
      @isAif47 4 года назад

      U for uppercase or u for lowercase works too. :-)

  • @Psicoeducazione
    @Psicoeducazione 4 года назад +3

    I've been using vim since 2012, and now, thanks to your presentation, I understand why.

  • @SaHaRaSquad
    @SaHaRaSquad 6 лет назад +10

    Wow, I knew about "inner" only in combination with brackets etc., but didn't imagine it working with words and paragraphs. He is right indeed, there's no ceiling.

  • @deric916
    @deric916 6 лет назад

    Best beginner vim video I've seen on RUclips

  • @TuringMachine001
    @TuringMachine001 5 лет назад

    Simple and effective. This video totally blew my mind.

  • @normalmighty
    @normalmighty 5 лет назад +12

    This is so good as a tutorial! I had given up because no matter how many people swore by vim, I could never remember a single command. I think this if finally giving me the intro I need to understand the logic of these commands and get somewhere without staring at a cheat sheet!

    • @lastmanstanding5423
      @lastmanstanding5423 4 года назад +1

      type _vimtutor_ in the terminal and repeat it 50 times until something sticks... that's what I did... :)

  • @mangelozzi
    @mangelozzi 4 года назад +11

    Great talk! I learnt so much. At 31:53 we actually do have language for a line, its called `_`. `c_` is shorter than `cil` and doesn't require a plugin (works with dot repeat too).

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

      `cc` seems to work too

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

      You can just use 'S' to substitute the entire line as opposed to small 's' that substitutes a character.

  • @adriansrfr
    @adriansrfr 6 лет назад

    Best vim presentation I've com across yet!

  • @tempsanity
    @tempsanity 10 месяцев назад

    Great video. Going back to neovim after a break (I mainly use it for keeping a journal now) in 2023 and this helped me remember some of the commands. Thanks!

  • @cMaXeJIJIo
    @cMaXeJIJIo 7 лет назад +119

    I actually lost count how many times I've watched this presentation! It's what got me into VIM, big time. So, thank you, Chris Toomey! You do some good work, too, haha!
    I have a little update on Tim Pope's Commentary plugin. It now uses a different syntax than when this video was made:
    g + c + l = comment out a line;
    g + c + j = comment one line down;
    gcgc = uncomment(Uncomments a whole block of text if it was commented out in one motion, a paragraph, for example)
    Many thanks for providing the presentation video, guys!

    • @m.y.s4260
      @m.y.s4260 4 года назад

      same here~

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

      @nerd bruh, this shit is eternal, haha!

  • @tripathi26
    @tripathi26 3 года назад +1

    Started with VIM today. This is very informative. Thank you!

  • @marvin674
    @marvin674 3 года назад +1

    Great dude! Nice talk. Been using vim inside VSCode for a while now and didn't know about the dot operator. That is game changing

    • @Nik-rx9rj
      @Nik-rx9rj 2 года назад

      Yeah, I’ll be using that one a lot

  • @nicholasreid5005
    @nicholasreid5005 4 года назад +7

    I'm getting into managing Linux and open-source software so tutorials like this are invaluable.

  • @dsaboo7654
    @dsaboo7654 5 лет назад +2

    wow, this is a super cool and easy-to-follow learner friendly introduction to the basics of Vim. Really thank you! Clap, clap, clap!

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

    7 years after your video It is still crazy useful. Thanks !!!!!!

  • @toomasvendelin
    @toomasvendelin 4 года назад

    For me, the best Vim presentation so far. Thumbs up!

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

    This is gold! Vi is almost 50 years old and still absolutely amazing. Object oriented editing! What!?!🎆

  • @teeew-fp2ty
    @teeew-fp2ty 3 дня назад

    "Typing is not the bottleneck." I discovered this just recently. I've been focusing on speed, but in hindsight I didn't solve problems faster, but introduced bugs faster only to spend more time trying to solve them. Vim had me somehow realize this. After 20+ years of computers and now switching to Linux, these tools (vim, the terminal, cli tools, basically Linux in general) opens a new way to experience computers. Funny is I realized why do I need a dedicated IDE? Linux IS an IDE you configure entierly yourself.

  • @qianghuang7835
    @qianghuang7835 3 года назад

    Thank you! The "dot" command is magic!

  • @dev2bhai
    @dev2bhai 7 лет назад +3

    Great talk man, I am vim user but I rediscovered power of vim by knowing vim better. Thanks buddy.
    NOTE: I was so into the language I had tried to use some of them by mistake while typing this language. ;-)

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

    very good talk. Good advice on sticking to the basics and going crazy on plugins

  • @nelovishk
    @nelovishk 9 лет назад +1

    This was very useful, thanks Chris!

  • @AlessandroPirrotta
    @AlessandroPirrotta 8 лет назад +1

    This is a great video! Thank you for all the tips.

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

    Thanks, Chris. "It's a good day", as you put, to learn what you've shared on the vim language and its syntax.

  • @ricardorien
    @ricardorien 3 года назад +1

    So powerful. Thanks for this talk!

  • @ALulzyApprentice
    @ALulzyApprentice 7 лет назад

    This is how people learn complex aerobics routines. I am determined learn and use Vim. thanks. Great talk/tutorial.

  • @danieldosen5260
    @danieldosen5260 8 лет назад +2

    great talk! you made me realize I was using visual mode as a huge crutch!

  • @desdasdass
    @desdasdass 8 лет назад

    Thanks man! Really good summary

  • @internetperson2
    @internetperson2 4 года назад +16

    Me : The last thing I need in my life is one more tool to learn, I should focus on solving problems, Sigh and clicks anyway.
    Chris : 2000 commands memorizing 30 intuitive things
    Me : Aight keep talking

  • @henrypercy2688
    @henrypercy2688 8 лет назад

    Thanks for the help. I should have been able to grok most of these useful editing features myself, but never did.

  • @angela_jx
    @angela_jx 5 лет назад +2

    I think any talk can never really do vim justice. You can’t know how powerful the commands can be unless you use them. That’s why I think anyone serious about programming should give vim a couple weeks of try. Vim is really different from any other text editor so you’re not going to be a pro on it in a day. In fact you’re probably not even gonna be able to move around probably for a couple hours at best but that’s fine. Just like you said, the effort really does pay off in the end

  • @ShaneNull
    @ShaneNull 5 лет назад

    thumbs up for that title case plugin!

  • @jamesharland3727
    @jamesharland3727 8 лет назад +58

    Really useful. I'm a linguist not a programmer and I use vim every day. I really like the idea here of vim as a language, and realized that's how I learn(ed) it - I think "change two words" and type 2cw automatically. I see the point about using text objects rather than movements though for the sake of repeatability - that's my big take-home from this video. Thank you!

    • @okuno54
      @okuno54 8 лет назад +9

      +James Harland Huh, I didn't expect 2cw to work, but it does; I always use c2w

    • @jamesharland3727
      @jamesharland3727 8 лет назад +5

      Yup, both work. I read somewhere about the logic being different, but they both lead to the same result.

    • @jamesharland3727
      @jamesharland3727 3 года назад +1

      @nerd Hey, yep, every day.

    • @willd0g
      @willd0g Месяц назад

      @@okuno54thank goodness thats much inline semantically with how i say it mentally in my head so i will definitely not be forgetting this. Ta

  • @haxpor
    @haxpor 5 лет назад

    Very great technique and talk! It will be most effective if viewers are already familair and work with vim in day to day, this talk will refresh, recall, and make the foundation of vim for us much better.

  • @lenickramone
    @lenickramone 3 года назад

    amazing! i could 24h of this content in a row

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

    Great video, good to know about visual mode smell

  • @mixcocam
    @mixcocam 8 лет назад +1

    Title case is a move in a nice direction. Using VIM as a word processor for prose or LATEX is very nice and there are few plugins for this type of use.

    • @t33can
      @t33can 8 лет назад

      +Rodrigo Camacho yeah, I think my days on Texmaker are counted.

  • @LePomologue
    @LePomologue 8 лет назад

    Really good talk, thanks for the insight!

  • @davidsantiago29
    @davidsantiago29 4 года назад

    Thanks, i've learned the inner keyword that should prove very useful!!!!

  • @JohnnyWSantos
    @JohnnyWSantos 4 года назад

    Wow that that presentation is really thoughtful!

  • @nebsen91
    @nebsen91 3 года назад

    Excellent talk. Thank you!

  • @JKhalaf
    @JKhalaf 3 года назад

    This was very useful, thank you!

  • @clickaccept
    @clickaccept 4 года назад

    Brilliant presentation. I love vim.

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

    Still one of the best videos I ever saw on Vim

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

    Amazing!!! Thank you soo much!

  • @chromosundrift
    @chromosundrift 4 года назад

    The + register is the system clipboard, so you can paste from it into vim "+p or yank an inner paragraph into it with "+yip

  • @user26912
    @user26912 6 лет назад +7

    You can find a second or nth instance of o with `2fo` or `fo`.

  • @asadsalehumar1011
    @asadsalehumar1011 4 года назад +1

    I just commited my heart to learn Vim, thanks Chris

  • @LittleFearTV
    @LittleFearTV 6 лет назад +2

    I love your intro music. ❤

  • @NoNealp777
    @NoNealp777 11 месяцев назад

    Awesome.
    Thank you!

  • @Usertrappedindatabase
    @Usertrappedindatabase 4 года назад +1

    i'm getting little shots of dopamine and 'ah ha!' moments constantly while watching this. I'm going to commit to VIM, I love the idea of just thinking through stuff and not having to get distracted by bells and whistles, just pure efficiency...

  • @dawid_dahl
    @dawid_dahl 3 года назад

    As a new Vim user I loved this video, thank you!

  • @Samuel-di8tx
    @Samuel-di8tx 2 года назад

    Yeah that was an amazing talk. Thank you

  • @jw1ck
    @jw1ck 3 года назад

    This dude sold me on Vim. Gonna learn to use it!!!

  • @RT-eb6vo
    @RT-eb6vo 2 года назад +2

    I actually pressed b to wind this video back... I vote youtube starts supporting Vi commands!

  • @jeandelinux259
    @jeandelinux259 6 лет назад +2

    Best talk about vim

  • @stonestudio0
    @stonestudio0 9 лет назад +1

    Very useful!

  • @marloncesar4573
    @marloncesar4573 4 года назад

    I learn a lot, thanks!

  • @pica110029
    @pica110029 8 лет назад +1

    loved the talk..

  • @coralmusicaviva
    @coralmusicaviva 4 года назад

    Great. These are really Master explanations.

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

    damn i'm in love with VIM

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

    Awesome talk!

  • @silentmodesec
    @silentmodesec 3 года назад

    A superb explainer !

  • @christophermaisch
    @christophermaisch 5 лет назад +1

    ... Now I get it. This is life changing!

  • @mfandrade
    @mfandrade 6 месяцев назад

    Great video!

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

    I use vim on vscode using an extension, it’s got the power of search and editing from vim as well as all the capabilities of vscode. Haven’t looked back since

  • @serhiicho
    @serhiicho 5 лет назад +3

    I came back to this video after 10 months to say that after I've watched this video I started using Vim as a plugin for VS Code. It was a pain for the first month. But now I can't work without it. It makes my life as a developer so easier. I'm sure I'll be using it for the rest of my life. Love Vim.

    • @serhiicho
      @serhiicho 5 лет назад +1

      And now I'm starting slowly transition from VSCode to real Vim with bunch of plugins.

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

      @@serhiicho Have you switched from vscode to vim? And if so, what did you get from it?

    • @serhiicho
      @serhiicho 4 месяца назад

      @@tyafizi I didn't, still using VSCode with VIM plugin. It's easier for me