Let Vim Do the Typing

Поділитися
Вставка
  • Опубліковано 27 чер 2024
  • George Brocklehurst shows Vim's various built-in completion mechanisms. This will let us let Vim do the typing, writing fewer typos and faster!
    Learn more from the developers at thoughtbot ⌨️
    Head over to tbot.io/dev-blog to read more great articles on our blog.
  • Наука та технологія

КОМЕНТАРІ • 114

  • @IanEdington
    @IanEdington 7 років тому +175

    Overview: In insert mode you can...
    ^r = insert text from a register
    ^a = insert text from register '.'
    ^p = completion menu
    ^x = special "completion mode" submode of insert
    - - ^] = tag
    - - ^p = pull from previous context
    - - ^n = pull from next context
    - - ^f = file completion
    - - ^l = line
    - - ^o = omnicompletion
    How to change where to complete from:
    set complete

    • @fx5298
      @fx5298 4 роки тому +4

      I've gotta say, ^x^f is pretty awesome.

    • @sudeepdalal3540
      @sudeepdalal3540 3 роки тому +1

      Nice to know ^x put vim completions in context aware mode

    • @soreneddie9301
      @soreneddie9301 2 роки тому

      i dont mean to be so off topic but does anyone know of a method to log back into an Instagram account??
      I somehow lost the account password. I would love any tips you can give me!

    • @sorendakari3519
      @sorendakari3519 2 роки тому

      @Soren Eddie Instablaster =)

    • @soreneddie9301
      @soreneddie9301 2 роки тому

      @Soren Dakari thanks so much for your reply. I got to the site through google and I'm in the hacking process now.
      Looks like it's gonna take a while so I will get back to you later when my account password hopefully is recovered.

  • @3ombieautopilot
    @3ombieautopilot 5 років тому +28

    The speaker deserves some kind of an award for showing CTRL + r and CTRL + a

  • @VernonSwanepoel
    @VernonSwanepoel 8 років тому +159

    How nice to watch a video where 8 minute in I'm already thinking "This was time well spent". Awesome!

    • @christopherfujino
      @christopherfujino 8 років тому +9

      I'm at the exact same point right now, thinking the same thing!

    • @mitchkins5560
      @mitchkins5560 7 років тому +2

      I felt like clapping around the 8 minute mark!

  • @diegorodriguezv
    @diegorodriguezv Рік тому +11

    I watched this about a year ago and nothing made sense. This time everything seemed so clear. Vim is a never ending learning journey. If you don't understand what's happening here don't worry. Add it to your "watch later" playlist and come back in a while.

  • @theena
    @theena 3 роки тому +33

    Not a coder, but a novelist looking to rework my workflow away from documents and into text files. Been learning vim recently and, honesty, it has been a revelation. And this talk just upped my vim game a few levels. Thank you.

    • @TheToric
      @TheToric 3 роки тому +7

      It might be usefull to put some tome into learning LaTeX as well for the document formatting. Its helped me out a ton of times.

    • @theena
      @theena 3 роки тому

      @@TheToric Thank you. I will.

  • @batlin
    @batlin 8 років тому +6

    Vimgolf is a great way to pick up many of these shortcuts, but it was really nice to have a clear explanation here giving context to the optimisations.

  • @sethcenterbar
    @sethcenterbar 6 років тому +10

    This dude is a wonderful presenter. The first time I watched this video a few months ago, I didn't really get it because I was just starting out, but this really is a great session to watch all the way through. Thanks!

  • @gregoireparis5494
    @gregoireparis5494 8 років тому +7

    Didn't know about the at end of line trick. This is awesome!

  • @LeonidBraynerMyshkin
    @LeonidBraynerMyshkin 6 років тому +11

    Guys, if you're trying to stay a bit more in insert mode, there's a way to manually create and undo point (while still in insert mode): C-g u.

  • @cristophoenix
    @cristophoenix 9 років тому +23

    A lot of good Vim tips in this video.

  • @ruhnet
    @ruhnet 5 років тому +9

    Super video! When I first started watching I almost stopped, because it seemed kindof silly and I'm not a big fan of CTRL key combinations, but as the video went along and more examples were shown, it became more and more useful and interesting. Well well worth the time to watch. Thanks!!

  • @liridonsejdiu6110
    @liridonsejdiu6110 2 роки тому +2

    Promoting open source software on close source OS that's something, good job men

  • @martincox558
    @martincox558 7 років тому +2

    This is a cool video with lots of great tips. Slightly confused that the guy used CTRL-] to jump to definitions, but wasn't aware of CTRL-T to go back. Great talk :)

  • @Atreyuguy590
    @Atreyuguy590 6 років тому +150

    Hey! Vsauce. Micheal here.

  • @magno5157
    @magno5157 5 років тому +1

    Great talk! Very clear and succinct.

  • @rakesh4a1
    @rakesh4a1 7 років тому +6

    Some new VIM hacks added to my list. There is lot to learn in vim for easy coding.. thanks a lot.
    This tutorial is presented more than an year before, can we get some more hacks here Mr. George Brock. +1

  • @srinirg1
    @srinirg1 7 років тому +1

    That is a very good tutorial. Thanks!.

  • @toxicsneeze
    @toxicsneeze 7 років тому +2

    This is awesome sir, thanks for your video.

  • @harshraj22_
    @harshraj22_ 4 роки тому

    Thanks a lot for this wonderful video.

  • @GSourceCode
    @GSourceCode 5 років тому +2

    Best talk on power of insert mode
    1. Ctrl x + f #filename complete
    ] #tag complete
    l #line complete
    o #language complete
    p #word complete
    n # word complete
    2. Ctrl + r + a # a register
    Register " & 0 is current resister are woderful
    Amazing talk. Thanks a lot
    GitHub repo : georgebrock/talks

  • @frzen
    @frzen 2 роки тому +1

    Brilliant. Can't believe I didn't know the line competion

  • @sixro
    @sixro 3 роки тому +1

    Very informative. Thanks.

  • @siegfriedgessulat4934
    @siegfriedgessulat4934 7 років тому

    Thank you for the great talk!

  • @ahallock
    @ahallock 4 роки тому +1

    TabNine takes completion to an entirely new level

  • @BluePaperUmbrella
    @BluePaperUmbrella 4 роки тому

    Great video, thanks.

  • @ehrenmurdick
    @ehrenmurdick 2 роки тому +1

    +1 for not remapping leader key. ',' is useful for going back after f and t.

  • @josephknightcom
    @josephknightcom 5 років тому +6

    Side note to all, to turn off spell check: :set spell!
    Not intuitive and is not in the ":help spell" vim documentation.

    • @geoptus
      @geoptus 5 років тому

      true, the use of ! is not obvious to find,
      i ran ":h toggle" and got the general "set-options E764", "set-! :set-inv"
      typically, any boolean type attribute will 'toggle/invert value' with "!"
      a good use case - :set relativenumber!

    • @recklessroges
      @recklessroges 4 роки тому

      :set nospell

    • @wulymammoth
      @wulymammoth 4 роки тому

      Also better to have it only set for particular file types like markdown

  • @MikeCarden
    @MikeCarden 6 років тому +4

    Great talk - thank you for sharing. I *am* twitching though. All these comments and nobody mentions what the fox did? If the fox 'jumped' rather than 'jumps', you have no letter 's'. The sentence is intended to exercise every alpha key on a typewriter. I'm curious. Has anyone mentioned this in live talks?

  • @hangugeohaksaeng
    @hangugeohaksaeng 8 років тому

    Great talk. Thanks!

  • @sh1pme2themune9
    @sh1pme2themune9 4 роки тому +2

    Should've called this video, "Chad Insertion (Mode)"

  • @pspicer777
    @pspicer777 5 років тому +8

    First there was Vi vs. Emacs ... then the Big Bang and the Expansion of the Universe....

    • @VanStabHolme
      @VanStabHolme 4 роки тому

      Vim tries to be a good editor that can also be an IDE.
      Emacs tries to be a good editor but ends up being OS.

  • @PestOnYT
    @PestOnYT 5 років тому +1

    Great vid. Learned some new tricks. I was hoping to "map" ^x^p to a function key (F7), however in insert mode it just inserts . Would have been great. I may have to use macro keys of my keyboard... Anyways, thank you very much sir!

    • @user-hj1dc2wp7v
      @user-hj1dc2wp7v 4 роки тому +2

      You have to use :inoremap, as in "(i)nsert mode (no)n (re)cursive (map)ping". If you don't put the "i" you're only mapping for normal, visual and select modes by default.

  • @MarkSkipperBiterjug
    @MarkSkipperBiterjug 8 років тому +5

    What's that awesome jazz at the beginning?

    • @Vinomix
      @Vinomix 7 років тому

      james bond

  • @jozsefgubicza8808
    @jozsefgubicza8808 8 років тому +2

    Really great talk! I've never used VIM in this way but it's super cool that it can do that. How do u show what your typed in chars at the bottom of the window? Is it a plugin or can be set up this way? It would be useful for me to know what I've just typed in to make sure.

  • @Jack-qd4xe
    @Jack-qd4xe 8 років тому +1

    Great video. Very informative. Is there anything like this available for Emacs?

  • @Tala2n
    @Tala2n 4 роки тому +1

    The fact you have to type "Ctrl-P" to get the completion suggestions kills the benefit of the feature for most words.

  • @KbIPbIL0
    @KbIPbIL0 8 років тому +3

    "Control X Control Oops"

  • @chris-ew9wl
    @chris-ew9wl 4 роки тому

    So I tried this out, is there a way to make Ctrl-X Ctrl-P work across buffers? Or it only works on the same buffer?

    • @chris-ew9wl
      @chris-ew9wl 4 роки тому +2

      Okay, I figured this out, I hope someone finds this useful. You need to do a Ctrl-N *first* if you're doing it across buffers. After that context-aware kicks in and Ctrl-X Ctrl-P works now.

  • @parrotraiser6541
    @parrotraiser6541 Рік тому

    The audio level on this fluctuates from low to inaudible, unfortunately.

  • @ddddddddd345
    @ddddddddd345 8 років тому

    I have a `+insert_expand` enabled, but Ctrl-X in insert mode does not seem to be doing anything for me. What am I missing?

    • @cthzierp5830
      @cthzierp5830 4 роки тому

      It might have been remapped to Cut (as in cut/copy/paste) by the installer?

  • @opal6605
    @opal6605 5 років тому +8

    g; return to last edit

    • @lylez00
      @lylez00 3 роки тому +1

      '. does the same thing.

  • @quebono100
    @quebono100 3 роки тому

    Haha, vim as a language model, awesome

  • @ifohancroft
    @ifohancroft 3 місяці тому

    Can someone link to rcm, please? It's not linked in either the description or the video's associated blog post.

  • @mingwen196
    @mingwen196 6 років тому +5

    11:23, how can he show the next key options following c-x?
    oh , i see
    set showcmd

  • @kurt44mg42
    @kurt44mg42 6 років тому +4

    @6:56 The quick brown fox jumps - not jumped - over the lazy dog. Just saying...

  • @folksurvival
    @folksurvival 2 роки тому +1

    Balding? Check.
    Glasses (with thick rimmed frames)? Check.
    Beard? Check.
    T-shirt? Check.

  • @joshpetit8298
    @joshpetit8298 3 роки тому +2

    I'm disapointed. I thought vim had implemented neurolink so that we can type with our minds. This suffices enough though :)

  • @Phantom-pj1ls
    @Phantom-pj1ls 3 роки тому

    For some reason example at 4:02 doesn't work for me :(
    When I press . it only repeats "world"

  • @stv3qbhxjnmmqbw835
    @stv3qbhxjnmmqbw835 2 роки тому +2

    He's a Ctrl freak
    Just kidding, loved the content.

  • @goldahong4392
    @goldahong4392 2 роки тому +1

    Hello thoughtbot, thanks for this video! How do we know the word Hello is in Register 'a' and the word World is in Register 'b' ? Your reply could really help me a lot! Hope to hear from you soon.

    • @michalski9141
      @michalski9141 2 роки тому

      you can yank text objects into registers by pressing “y. There are also the special registers * and + that allow you to copy and paste from your clipboard with “*y and “*p. You’ve probably figured it out by now but hopefully anyone else can learn something new

  • @JustinCDas
    @JustinCDas 8 років тому

    Thanx for this video........

  • @theAIex2
    @theAIex2 5 років тому

    Does anyone knows how to add the option kspell for the autocompletion?

    • @geoptus
      @geoptus 5 років тому

      if you mean ":set complete=.,w,b,u,t,i,kspell",
      add this line to your vimrc file

  • @rmmichael95
    @rmmichael95 6 років тому +31

    That moment when he presses a Enter esc instead of o...

    • @VulcanOnWheels
      @VulcanOnWheels 4 роки тому

      If you're referring to a moment in the video, it's a good thing to include the time index. I usually do it at the beginning of the line.

    • @gurdeepgss
      @gurdeepgss 4 роки тому +1

      @@VulcanOnWheels 2:52 , there you go buddy.

  • @LukeAvedon
    @LukeAvedon 5 років тому

    Stupid question: How do I add kspell to set complete?

    • @recklessroges
      @recklessroges 4 роки тому

      :set complete=.,w,b,u,t,i,kspell
      or echo "set complete=.,w,b,u,t,i,kspell" >>~/.vimrc

  • @gladwinmohlamonyane4033
    @gladwinmohlamonyane4033 6 років тому

    this information can be found in the help files right?

    • @nafaa-news
      @nafaa-news 6 років тому

      Yea, :help i_CTRL_X will get you to that CTRL_X tip help. The help files are huge and you'll get lost there very quickely if you don't know what you're looking for.

    • @Ihavetoreturnsomevideotapes
      @Ihavetoreturnsomevideotapes 5 років тому

      Haha I know

  • @okuno54
    @okuno54 8 років тому

    "Tests have a repetitive structure" which is why I use a strong type system :P
    Not really related to the talk, but it's odd to see how much my methods have changed in the last few years.

  • @nihilistic7840
    @nihilistic7840 4 роки тому

    I didn't know about text completion! ^p and ^n!

  • @GuilherHast
    @GuilherHast 3 роки тому +1

    I tried to enter in insert mode here in youtube but it minimized the video.

  • @mikej7476
    @mikej7476 5 років тому +1

    This is WAYYYY more typing than it needs to be. At least from what he is saying and showing, it comes across as twice the work for two words.Why does it come across like twice the amount of work for such a small amount of text?

    • @ex0stasis72
      @ex0stasis72 5 років тому +15

      That's like saying that people learning programming shouldn't write hello world programs. They should just open up a Word document and type "Hello World!" because it's easier. The point is to show a concept in a simple context so that you can use it for longer strings of text with symbols and other obscure characters to type.

  • @freeuyghur2063
    @freeuyghur2063 6 років тому +1

    ctrl + x is so powerfull.

  • @richardbekking
    @richardbekking 4 роки тому

    Shorter commands:
    set rnu
    set nu

  • @chewie481
    @chewie481 9 років тому

    ctrl-x is such a horrible bind. on my layout, x is directly under the left pinky so pressing left ctrl is out, and the right one is too far away... I’ll probably bind it to x

    • @rooneye
      @rooneye 9 років тому +5

      M1zzu q Change Caps Lock to CTRL :D

    • @thomasloven
      @thomasloven 8 років тому +4

      +M1zzu q So? This is vim. Remap it to something that works for you.

    • @DurgaswaroopPerla
      @DurgaswaroopPerla 8 років тому +1

      +Thomas Lovén Yep. Do what ever works for you!

  • @user-lh8df2pt5k
    @user-lh8df2pt5k 5 років тому +1

    oh, what am I doing here, I remembered I'm an emacs user..

    • @neonblood4658
      @neonblood4658 4 роки тому

      Fate brought you here, switch to the good side

  • @AndyThomasStaff
    @AndyThomasStaff 2 роки тому +3

    I love hitting ctrl-x, ctrl-] to autocomplete a tag name in my project. Just kidding, it's terrible, Vim is inefficient by design and forces you to learn how to glue lots of nasty little commands together like these to try to be efficient. Sure you could use a modern IDE that does all of this for you with intellisense, but that wouldn't give you carpal tunnel from vim commands, so maybe it's not worth it.

  • @xged.
    @xged. 5 років тому

    Spacemacs out-of-the-box (auto)completion is significantly better then this one. (Although this vid is 4yo)

    • @wulymammoth
      @wulymammoth 4 роки тому

      I wouldn’t switch back to Spacemacs for subjectively “better” completion. I’ve used Spacemacs and configuring it was such a pain in the ass for the 9 months that I tried it. Vim/Neovim with LSP (language server protocol) is probably better than what you’re suggesting

  • @encycl07pedia-
    @encycl07pedia- Рік тому

    I stopped watching as soon as I saw the unmistakable Mac/Apple UI. Not only is Mac OS terribly inefficient and garbage at multitasking (even 8 years later in 2023), it's also one of the pioneers in anti-consumerism in the 21st century.