This VIM trick BLEW MY MIND

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • LEARN: learn.typecraf...
    Join the stream! / typecraft
    Join the community: / discord
    X: / typecraft_dev
    I've been using vim for 10+ years now, and I gotta say, I still learn something new every once in a while. And recently, I realized something about macros, and registers, that BLEW MY MIND. Check out this video on why vim macros and registers are probably a LOT simpler than they seem.

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

  • @frknue
    @frknue 21 วันที่ผ่านมา +89

    thanks nerd

    • @SilentPongo
      @SilentPongo 20 วันที่ผ่านมา

      nerd

    • @G36_maid
      @G36_maid 14 วันที่ผ่านมา

      nerd

  • @_Grish
    @_Grish 22 วันที่ผ่านมา +219

    Another approach is to press qA (where A is the capital letter of the register where you saved the macro) and then press J. This appends J to the end of the sequence, resulting in: A,^[J

    • @lileightright
      @lileightright 22 วันที่ผ่านมา +7

      wow this actually works

    • @olivierbegassat851
      @olivierbegassat851 22 วันที่ผ่านมา +3

      Does this allow you to append a single character or more ?

    • @olivierbegassat851
      @olivierbegassat851 22 วันที่ผ่านมา +7

      Oh, you can append as much stuff as you want :D

    • @lileightright
      @lileightright 22 วันที่ผ่านมา

      @@olivierbegassat851 yeah no limit amazing stuff

    • @_Grish
      @_Grish 22 วันที่ผ่านมา +30

      Fun fact: This isn’t exclusive to macros; it works for registers in general! You can use this trick to append text while yanking, for example:
      1. Yank a line with yy
      2. Append another line to the same register with "Ayy"
      Now register a contains both lines.

  • @Rizhiy13
    @Rizhiy13 22 วันที่ผ่านมา +101

    BTW, you can just use `%s` as the whole file selector and replace newline with comma space: `:%s/
    /, /`

    • @Windeycastle
      @Windeycastle 21 วันที่ผ่านมา +8

      Yes, there are multiple ways to do all these tasks, and knowing more then 1 often comes in handy!

    • @canyonblue7735
      @canyonblue7735 21 วันที่ผ่านมา +10

      I tried to resist coming to the comments section just 30 seconds into the video and recommending this method but couldn't do it. Since you already did I'll just comment and like. 😃

    • @SmallSpoonBrigade
      @SmallSpoonBrigade 12 วันที่ผ่านมา

      Vi is the same way, there's just so much stuff that's baked in even before you run the entire file through sed or awk.

    • @warrenrexroad1172
      @warrenrexroad1172 9 วันที่ผ่านมา

      Don't forget the `| s/, $/` on the end to remove the trailing comma if the file ended with a newline!

    • @drishalballaney6590
      @drishalballaney6590 9 วันที่ผ่านมา +1

      a lot of times I Just use substitution instead of macros XD

  • @achimwasp
    @achimwasp 22 วันที่ผ่านมา +25

    You can even use @a at the end of the macro itself (so end the recording with @aq) - just make sure the "a" register is empty before recording (by typing qaq). Once called, it will repeat itself to the end of the file. In this specific example you would end up with a comma at the end, though, which is probably not what you want.

  • @kode4food
    @kode4food 22 วันที่ผ่านมา +45

    I try to avoid yanking all over the place, for legal reasons

  • @user-fed-yum
    @user-fed-yum 22 วันที่ผ่านมา +59

    Tip: after you invoke @a the first time, which requires three button presses, you can then just press "." by itself to repeat the last command. One button press; and hold the key down for auto repeat. Helping those oldies with much more than 15 years programming experience, and their arthritic wrists and hands 😂

    • @cool_scatter
      @cool_scatter 22 วันที่ผ่านมา +9

      or just type a number first to do it that many times

    • @olivierbegassat851
      @olivierbegassat851 22 วันที่ผ่านมา +11

      For me the '.' doesn't work with macros ... I can repeat the same macro with @@ though.

    • @CNich90
      @CNich90 22 วันที่ผ่านมา +1

      Yeah same, at least in vscode vim extension the “.” doesn’t repeat macros for some reason.

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 22 วันที่ผ่านมา +17

      . repeats last edit, last edit was a join, not the macro call.
      @@ is where it's at

    • @CNich90
      @CNich90 22 วันที่ผ่านมา +1

      @@ChrisCox-wv7oo thanks man for the clarification

  • @GinoFazari
    @GinoFazari 22 วันที่ผ่านมา +9

    A couple extra tips:
    - To append to a register you can use the capitalized letter "Ay
    - In this case add to the macro with qA
    - If you need to edit it, you can paste straight from the register with "ap

    • @Windeycastle
      @Windeycastle 21 วันที่ผ่านมา +1

      Thanks nerd!

    • @magno5157
      @magno5157 21 วันที่ผ่านมา

      I don't understand. What's the difference between "appending" and "adding" to the register?

    • @GinoFazari
      @GinoFazari 21 วันที่ผ่านมา

      @@magno5157 same thing, i just used different words for some reason.

    • @Egzvorg
      @Egzvorg 19 วันที่ผ่านมา

      ​@@magno5157it's just different phrasing, I think, but you can either use qA or "Ay

    • @modernkennnern
      @modernkennnern 19 วันที่ผ่านมา

      ​@@magno5157Appending means to "add to the end of"

  • @ChrisCox-wv7oo
    @ChrisCox-wv7oo 22 วันที่ผ่านมา +27

    "I've yanked all over the place"
    phrasing!

    • @NElectronicSoul
      @NElectronicSoul 22 วันที่ผ่านมา

      it's all that item 8!

    • @SmallSpoonBrigade
      @SmallSpoonBrigade 12 วันที่ผ่านมา

      @@NElectronicSoul As long as it's not a random assortment of =,D and 8, it should be fine.

  • @josephangelodelosreyes4206
    @josephangelodelosreyes4206 22 วันที่ผ่านมา +7

    this is what i love about vim. you think you're efficient already, but there's always a new neat trick to learn every so often. :)

  • @vivianludrick03
    @vivianludrick03 22 วันที่ผ่านมา +53

    Coincidently, I learned the same trick this week and was like "ig this vim journey ain't ending soon"

    • @no_name4796
      @no_name4796 22 วันที่ผ่านมา +4

      here's an other random trick you probably don't know: ctrl+6 to go to the previous buffer (very useful when you have two buffers and need to go back and forth)

    • @KENTOSI
      @KENTOSI 21 วันที่ผ่านมา

      @@no_name4796 That's super useful! Thanks.

  • @Hellbending
    @Hellbending 22 วันที่ผ่านมา +15

    This absolute CHAD, 0 care havin' ass beast, actually listed god damn 'meth' in his supposed shopping list. Your humor bro - I'll never get tired of it 🤣🤣🤣

    • @typecraft_dev
      @typecraft_dev  22 วันที่ผ่านมา +9

      Unfortunately Whole Foods was out of stock :(

    • @Hellbending
      @Hellbending 22 วันที่ผ่านมา +4

      @@typecraft_dev they keep it out the back- a bit towards the alley generally.
      Should be a guy somewhere around there but he won’t be wearing employee attire, they allow free dress.

    • @steeltormentors
      @steeltormentors 22 วันที่ผ่านมา +1

      There's a grandma somewhere in his shopping list...I don't know what to make of that 😮

  • @lileightright
    @lileightright 22 วันที่ผ่านมา +7

    i love learning this native vim things rather then spamming plugins into my workflow, thanks

  • @bambitsunami4165
    @bambitsunami4165 22 วันที่ผ่านมา +7

    You can also use ctrl-f to edit command-line mode commands or searches using vim motions! Eg :”compliaced command with mistake” then “ctrl f” to edit, then enter to run. Works with /“complicated search” too i think.
    the edits happen in whats called the “command-line window”.
    ctrl c (or :q) exits the command-line (or search) editing mode. (ie it exits the “command-line window”).
    edit: to learn more run “:help c_CTRL-f”!

    • @rugmj
      @rugmj 22 วันที่ผ่านมา +1

      This is so useful thank you

    • @bambitsunami4165
      @bambitsunami4165 22 วันที่ผ่านมา

      @@rugmj you’re welcome! to learn more run “:help c_CTRL-f”

    • @MatthieuPETIOT
      @MatthieuPETIOT 22 วันที่ผ่านมา +2

      In normal mode you can do q: to get last commands, q? or q/ to get last searches.

    • @Egzvorg
      @Egzvorg 19 วันที่ผ่านมา +1

      it's command-line window. Command mode is a synonym for Normal mode.

    • @bambitsunami4165
      @bambitsunami4165 19 วันที่ผ่านมา

      @@Egzvorg oh interesting, thanks! i corrected my comment to say “command-line window” instead of “command mode window”, and “command-line mode” instead of “command mode”

  • @abag0fchips
    @abag0fchips 22 วันที่ผ่านมา +27

    i get this tutorial is for editing vim buffers and it was just an example, but the actual easiest way to do this is to type ":%s/
    /, " instead. substitute, match newline, replace with comma space.

    • @lileightright
      @lileightright 22 วันที่ผ่านมา +2

      this is nice its working but if there is other content in the buffer it will apply to all.

    • @DeathStocker
      @DeathStocker 22 วันที่ผ่านมา +4

      You can also apply the substitution to a visual selection

    • @abag0fchips
      @abag0fchips 22 วันที่ผ่านมา

      @@lileightright yeah but in the event you have more lines with different content you can use more specific regex to describe the lines you want to modify. You can also use a format like this to only modify what you have selected in visual mode :%s/\%VSEARCH/REPLACE/g

    • @lileightright
      @lileightright 22 วันที่ผ่านมา

      @@abag0fchips i tried this when highligheted but for some reason it not working :'

    • @Noname-67
      @Noname-67 22 วันที่ผ่านมา +1

      If you select your area and type the colon, the command line will become `:'

  • @henrymisc
    @henrymisc 22 วันที่ผ่านมา +3

    Man, Vim never seizes to surprise me. There's always more to learn!

  • @silak33
    @silak33 22 วันที่ผ่านมา +12

    You could also have tried qA.
    Like when you yank into an upper case registry it will append what you do to the registry rather than overwriting it.

    • @edonan85
      @edonan85 22 วันที่ผ่านมา

      very useful, thank you!

    • @MatthieuPETIOT
      @MatthieuPETIOT 22 วันที่ผ่านมา

      Thanks, this one is very useful.

    • @lian1238
      @lian1238 22 วันที่ผ่านมา

      Only nerds would know this. I am now a nerd. 😂

  • @Temet79
    @Temet79 22 วันที่ผ่านมา +2

    That's huge as I can basically have a "macro.txt" file where I can save a bunch of macros and then just open the file and copy the actions in registries... love it.

  • @noitibmar
    @noitibmar 22 วันที่ผ่านมา +4

    the number of times I've deleted a line to paste something in its place only to realise I just copied that line and pasted it back...
    Sideaffect of this video is I now know how to access multiple clipboard buffers and I will be abusing that.
    fantastic video

    • @typecraft_dev
      @typecraft_dev  22 วันที่ผ่านมา +1

      Yes!! Tons of registers that hold a lot of info

    • @aliventurous
      @aliventurous 22 วันที่ผ่านมา +2

      One way to avoid this is to use "0p which will paste the last thing you yanked. I tend to use visual mode to highlight the thing I want to paste over, instead of deleting and pasting

    • @modernkennnern
      @modernkennnern 19 วันที่ผ่านมา

      It takes time getting used to not deleting then pasting, ye 😂
      Just Vp instead

    • @Egzvorg
      @Egzvorg 19 วันที่ผ่านมา

      ​@@aliventurousif you use `:h v_P` for pasting it won't put the overwritten line in the default register, allowing you to repeat the replacement.

  • @KingZero69
    @KingZero69 21 วันที่ผ่านมา +2

    that’s a cool tip, and i actually use this all the time… but you should have ended it by saying you can just type “7@a” and get all the lines to concat in one command by multi-running the macro instead of having to type “@a@a@a@a…” like a goon 😏(it’s also useful to know “@@“ reruns the last macro you ran)

  • @JarheadCrayonEater
    @JarheadCrayonEater 19 วันที่ผ่านมา +12

    I've been a developer for 38 years.
    Hearing "15 years" and then "I'm getting so old" was ridiculous.

    • @luquest1848
      @luquest1848 14 วันที่ผ่านมา +3

      46 for me, you young whippersnappers XD (no cap!

    • @JarheadCrayonEater
      @JarheadCrayonEater 14 วันที่ผ่านมา

      @@luquest1848, ha! I just turned 47!
      Yep, got it right!

    • @legion_prex3650
      @legion_prex3650 10 วันที่ผ่านมา +1

      me too!

  • @tristansnow
    @tristansnow 22 วันที่ผ่านมา +2

    You pasted the register using the :put command, and I hadn't seen this before. I just use the inverse of yanking to the register, and paste from it using: "ap to paste from register a.

  • @theIbraDev
    @theIbraDev 21 วันที่ผ่านมา +2

    It’s so intresting seeing you film this live on twitch. Such an inspiration

    • @typecraft_dev
      @typecraft_dev  21 วันที่ผ่านมา +2

      Glad you enjoyed it!

  • @aidhoss
    @aidhoss 20 วันที่ผ่านมา

    In addition to others mentioning appending to the a register/macro using `qA`, you can also append to it a call to play itself back with `@a`, so the full a register becomes `A^[J@a`. Then play it once and it will continue recursively calling itself, joining lines until there are no more to operate over and then it will exit.

  • @panosp57
    @panosp57 22 วันที่ผ่านมา +7

    I hate the fact q was used for this as I often end up wanting to quit and instead I'm now fighting to get out of the macro input/mode

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 21 วันที่ผ่านมา +1

      don't fight. just quit. macro recording isn't inhibiting you.

  • @LoricBrevet
    @LoricBrevet 18 วันที่ผ่านมา

    In kakoune, that would just be: `%i,` (for selecting the whole buffer, joining lines and making a selection for each space inserted, and then inserting a comma and return to normal mode)

  • @fgodek1964
    @fgodek1964 16 วันที่ผ่านมา

    If the list is large, you can also call another macro at the end of your macro to make your original macro repeat. For example, if macro a is A,^]J@b and macro b is @a, it will repeat macro a until the list is done. I've done this in vi since back in the 1980s.

  • @baronvontrap3325
    @baronvontrap3325 22 วันที่ผ่านมา +4

    I didn’t know that you can edit macros either and I’ve been using vi/vim since 1988 …

  • @thecoderguy_0001
    @thecoderguy_0001 22 วันที่ผ่านมา +1

    you can go to visual or visual-line mode and select till the second last(ig) and do a single @a instead of pressing multiple @a 's

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 22 วันที่ผ่านมา

      Because you are modifying line count as the macro is run, this does not work.

  • @FoWDarthLi
    @FoWDarthLi 16 วันที่ผ่านมา

    I know about this for a long time, but I rarely use it because it's mostly shorter to just do the macro again. If your macro is simple it doesn't take long to just do it again. If it's long and you edit the macro as text you don't see what will actually happen during editing and will often do a mistake so again it's often faster to just do the macro again.

  • @romanaxle
    @romanaxle 22 วันที่ผ่านมา +2

    “I’m yanking all over the place”
    Same, buddy. Same.

  • @OfficialSkankyRich
    @OfficialSkankyRich 22 วันที่ผ่านมา +3

    Keep yanking fellas!

  • @DaneBurchette
    @DaneBurchette 21 วันที่ผ่านมา

    I literally found out about this same thing a couple weeks ago and it changed my life. I love these tricks with vim

  • @ildarakhmetgaleev
    @ildarakhmetgaleev 19 วันที่ผ่านมา

    In Helix this task could be done like:
    % - select all;
    - split selection by new line;
    ( - make last selection the active one;
    - deselect active selection;
    a, - add coma after each remaining selection;
    - collapse line after each remaining selection;
    ;, - reset selections to single character cursor.
    The trick with macro as buffer also works in Helix.

  • @vidal9747
    @vidal9747 22 วันที่ผ่านมา +1

    It's weird how I always thought that I was doing things slow in vim. Some day, suddenly, I realized I was getting fast. It is weird how suddenly it was. I am not TH-camr level fast, but I can perceive input delay in different terminal emulators fast. I don't know, I kind of had an epiphany and can do everything faster suddenly.

  • @CNich90
    @CNich90 22 วันที่ผ่านมา

    This was a revelation for sure lol really takes the mystery out of vim macros, I use them all the time but now it makes sense how it works under the hood.

  • @TheBearmoth
    @TheBearmoth 20 วันที่ผ่านมา +1

    "I'm yankin' all over the place"
    And here I was, thinking this was a family friendly channel 😂

  • @bambitsunami4165
    @bambitsunami4165 22 วันที่ผ่านมา +1

    Also @: and @@ are cool!
    @@ repeats the last macro and you can also do @: to redo the last command mode command! Eg :vsplit, then @: to repeat :vsplit, and then @@ will repeat it more haha.
    although, : also redo’s a command, and might be faster for one redo, i like @@ for multiple redo’s. i think i can even give it a count like 5@@.

  • @yinjs
    @yinjs 21 วันที่ผ่านมา +1

    less steps to modify register
    1. command mode type let @a=‘
    2. ctrl+r a
    3. edit macro, then add ‘ at the end, press enter

  • @prdoyle
    @prdoyle 10 วันที่ผ่านมา

    Vim is hard to learn and hard to master, but there's this huge inbetween phase where you're super productive.

  • @tintindb
    @tintindb 22 วันที่ผ่านมา +1

    First. Fantastic content!
    Second. Really funny I had to do this about a month ago and as you put it vim is an amazing piece
    Of tech. After I did the macro I had to to restrain myself from burning incense and chanting.
    Third. Not to dump on vim but you can do the same thing with Helix. But that is black magic of which we shall speak of no more.
    Requiring sacrifice... But let us speak no more of it!
    Fourth: cigarettes? Lol.

  • @WillEhrendreich
    @WillEhrendreich 21 วันที่ผ่านมา

    great stuff, keep it coming! I'd love more macro and vim regex magic stuff.

  • @savagepro9060
    @savagepro9060 22 วันที่ผ่านมา +2

    typecraft: "This VIM trick BLEW MY MIND"
    Cocaine: 🤔🤨 Hmm, so you're sniffing a household kitchen cleaner, eh?

  • @SteveWaltersY
    @SteveWaltersY 16 วันที่ผ่านมา +1

    You had me at "Whole Foods" purchase... did not know they had cigs and meth. Guess I need to get out more.and get me a grandma ;-) - love your vids.

    • @typecraft_dev
      @typecraft_dev  16 วันที่ผ่านมา

      Whole Foods has the organic stuff. It’s a little pricey but worth it

  • @no_name4796
    @no_name4796 22 วันที่ผ่านมา +4

    Prewatched the stream

  • @Hornet1806
    @Hornet1806 15 วันที่ผ่านมา

    Macros are good for later-replayability but I rarely use them. Instead for something like this I'd use visual-column mode or substitute. %s/
    /, /g, A does the trick. Or gg, ^v, G, $, A, ,, , G, $, x . Takes ~1s to type that out once you understand what you're doing.

  • @koushikm
    @koushikm 15 วันที่ผ่านมา

    I can't explain how many doors this opens for me. I never get macros first time right - that alone is a big win. Thanks a lot!

    • @typecraft_dev
      @typecraft_dev  14 วันที่ผ่านมา

      Love hearing comments like this! We love shining a light on techniques that are easily missed or overlooked.

  • @nerdydrow
    @nerdydrow 21 วันที่ผ่านมา +1

    you can also press a number before @ to tell vim to run the macro that many times like 6@a

  • @jefferyosei101
    @jefferyosei101 22 วันที่ผ่านมา +1

    Can't wait to see this channel grow. You're awesome 🎉

    • @typecraft_dev
      @typecraft_dev  22 วันที่ผ่านมา +1

      Thanks!! 100k here we come!

  • @sasakanjuh7660
    @sasakanjuh7660 21 วันที่ผ่านมา +1

    Prepare your mind to be blown again, because you can also select all the rows/lines in a visual mode, then type ": norm! @", and it will perform the macro saved in on all selected lines :) In this case, though, since it's running macro on each consecutive line, it will actually only append two words per line, so this was obviously not a perfect example, but still, super useful trick.. What you can do instead, is make a macro append only "," at the end of the line, use previously explained approach to run that macro on all the lines (which will effectively append "," to each of them), then select all the lines again in visual mode and just press "J", it will do the trick :)

  • @luccaugusto
    @luccaugusto 22 วันที่ผ่านมา +1

    i'd j CTRL+V G I , gg 7 J. Love macros but that's what came to mind first, to me it's a bit more intuitive than making a macro. Loved the trick too, didn't know it before

    • @petrpechkurov3095
      @petrpechkurov3095 22 วันที่ผ่านมา +1

      It could also be C-V G $ A , 7 J

  • @suede__
    @suede__ 22 วันที่ผ่านมา +1

    When you run the macro you can also tell it the number of times to run like when moving down multiple lines

  • @kacperkwasny3848
    @kacperkwasny3848 21 วันที่ผ่านมา +2

    woooow sooo cool.
    I realy feel that youtube finally got saturated with 101 tutorials and more content on advanced stuff is being created! Soo cool :D

  • @edding8400
    @edding8400 22 วันที่ผ่านมา +1

    "Grandma" is on the shopping list

  • @TheBigW300
    @TheBigW300 18 วันที่ผ่านมา

    you can also make macros recursive so that they call themselves and one call to it will go through the whole file.

  • @oglothenerd
    @oglothenerd 22 วันที่ผ่านมา +2

    I use Helix, btw.

  • @irlshrek
    @irlshrek 22 วันที่ผ่านมา +4

    also, if you press ".", the period, itll redo your last command. so you can do @a and then a bunch of periods to redo it

    • @silak33
      @silak33 22 วันที่ผ่านมา

      you can also use @@ for redoing the last macro you used

    • @matthewr8502
      @matthewr8502 22 วันที่ผ่านมา

      Years ago I read a really good book on vim and the first chapter was all about how powerful the . command is.

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 22 วันที่ผ่านมา

      . repeats last edit, which was a join.
      @@ to replay macros

  • @muddyexport5639
    @muddyexport5639 22 วันที่ผ่านมา +1

    Good news, thanks!

  • @michakozio7460
    @michakozio7460 22 วันที่ผ่านมา

    This is why '@:' will replay your last command mode action.
    You can think that '@' as 'play' and then submit the register with the contents to execute.
    And the ':' in this case is your last action from command mode.

  • @urizen959
    @urizen959 21 วันที่ผ่านมา

    OG knows title was changed and still rewatch it again cos why not

  • @CarlosReyes-ku6ub
    @CarlosReyes-ku6ub 22 วันที่ผ่านมา +1

    Dude, you're almost 100k, I miss the early days when we talked about Emacs...

  • @MySisterIsASlytherin
    @MySisterIsASlytherin 10 วันที่ผ่านมา +1

    Is nobody gonna talk about that shopping list?

  • @luispedrocamacho
    @luispedrocamacho 22 วันที่ผ่านมา

    Thanks for sharing!

  • @britneyfreek
    @britneyfreek 21 วันที่ผ่านมา

    in sublime i just use column editing for the commas and then join the lines. i program for 20 years and can’t get accustomed to having to remember all those vim gymnastics. still interesting nontheless.

  • @Steerable6827
    @Steerable6827 22 วันที่ผ่านมา +2

    "I'm yankin all over the place"

  • @PhrontDoor
    @PhrontDoor 16 วันที่ผ่านมา

    For the first 8 lines.. I'd do :
    move to beginning of apple... then
    :s/
    /,/g 8
    that changes the new lines to commas for 8 lines.

  • @IsraelFraga
    @IsraelFraga 21 วันที่ผ่านมา

    this is a cool feature, but it's also something that i never had the change to use well tbh, i use a alt layout and had to move hjkl around, so editing registers is quite the mental work to translate everything. maybe the langmap feature should also do this translation, but macro just doesn't work with it, i may try to get the repo and try out some ideas for this situation 🤔
    bonus thing: Q can be a macro for @q, so i always use it as a quick macro register thanks to it. a macro to start a macro? is this macroception?

  • @mrmakra-eo1kx
    @mrmakra-eo1kx 18 วันที่ผ่านมา

    before watching what you are going to say how i would do is
    select all the lines then :norm A,
    this would add comma to the end of line of every selected lines
    and now just press J couple of times and done
    oh yeah maybe delete the last comma at the end.
    edit: oh the video is about macro registers

  • @fcpolon1a543
    @fcpolon1a543 22 วันที่ผ่านมา +1

    The OGs saw it being filmed

  • @readyplayer2197
    @readyplayer2197 22 วันที่ผ่านมา +1

    Im not joking, my cat just subscribed to your chanel. I didnt know it knew vim.

  • @shahwan42
    @shahwan42 17 วันที่ผ่านมา

    Thanks. That was useful.

  • @jrtomsic
    @jrtomsic 22 วันที่ผ่านมา

    This is one that I've known about for a while. Something I haven't figured out is how to replicate the ^[ esc character if I want to, for instance, add an escape keypress somewhere in the middle of my pasted macro. I think using the capital register to append the esc char, then moving that character elsewhere is probably the easiest way, but I wonder if there's an easier one.

    • @granthammond804
      @granthammond804 21 วันที่ผ่านมา +1

      Ctrl_v Esc

    • @lpanebr
      @lpanebr 21 วันที่ผ่านมา

      @@granthammond804 I was going to say Ctrl+R Esc but now I'm uncertain. Gonna have to try it.

  • @bagfleet
    @bagfleet 22 วันที่ผ่านมา +1

    Great vid, thanks nerd!

  • @neoplumes
    @neoplumes 19 วันที่ผ่านมา

    But, what about ctrl+v jjjjjj shift+I backspace ,
    Visually selecting seems easier than a macro?

  • @softwaresirppi
    @softwaresirppi 22 วันที่ผ่านมา

    in kakoune that would be four keystrokes %r,

    • @ChrisCox-wv7oo
      @ChrisCox-wv7oo 22 วันที่ผ่านมา

      Not working for me (I don't use kakoune, using fairly old version 2022.10.31). Subs all char with ,
      I had to do %sc,
      10 char
      Vim
      :,+ns/
      /,
      13 char

  • @picklypt
    @picklypt 2 วันที่ผ่านมา

    So I could just write the macro into the file I am already editing, yank it, and then play it with @0.
    Pretty nice

  • @Ziggurat1
    @Ziggurat1 22 วันที่ผ่านมา +1

    Can you make videos about nixos?

  • @cstephens16
    @cstephens16 22 วันที่ผ่านมา

    if you want to execute the macro 8 times "8@a" so you don't have to re-execute w/ "." or "@a".

  • @jasonbeermaker4980
    @jasonbeermaker4980 22 วันที่ผ่านมา +2

    15years 😂 - your only just starting I’m close to 40years and used vi (the original) then moved to vim and now to neovim

  • @timidlove
    @timidlove 22 วันที่ผ่านมา +1

    maybe do a regex substitution simpler?

  • @sharp764
    @sharp764 22 วันที่ผ่านมา

    Coincidentally I learned this after watching this video

  • @um8078
    @um8078 21 วันที่ผ่านมา +1

    did no one notice the end of the list

  • @reapersenpaix99
    @reapersenpaix99 22 วันที่ผ่านมา +1

    ig i learned 2 more things today 🤯

  • @PetrenkoAndrii
    @PetrenkoAndrii 22 วันที่ผ่านมา

    Cool video! Thank you!

  • @danieloverstreet7625
    @danieloverstreet7625 19 วันที่ผ่านมา

    J blew my mind, very cool

  • @LEBR27
    @LEBR27 22 วันที่ผ่านมา

    How not to love this guy!

  • @StevenWaltonj
    @StevenWaltonj 8 วันที่ผ่านมา

    $GkA,VGJ
    or faster
    :1,$-1s/
    /, /g
    Also, ^[ isn't "a special character that means escape" it __is__ escape. You can press ctrl + [ (

  • @warpcode
    @warpcode 22 วันที่ผ่านมา +1

    You can also just visually select all the lines you want and type :norm @a if you don't need them all on the same line

  • @clemisch
    @clemisch 22 วันที่ผ่านมา

    Hmm, I feel like this example would have easier to solve with multi-cursor.
    Can somebody quote an example which is better handled with macros than multi-cursor (either directional or multi-select-same)?

  • @sean721888
    @sean721888 22 วันที่ผ่านมา +2

    You been programming since 10 yrs old?

    • @typecraft_dev
      @typecraft_dev  22 วันที่ผ่านมา +1

      I’m actually 76 years old

    • @sean721888
      @sean721888 22 วันที่ผ่านมา

      @@typecraft_dev you look great at 76!! Didn’t know using Arch and Vim can make you look so much younger

  • @TheRoseWoodBody
    @TheRoseWoodBody 13 วันที่ผ่านมา

    yank here, yank there, yank yank everywhere

  • @dermozart80
    @dermozart80 20 วันที่ผ่านมา +1

    Who doesn't want to purchase a grandma?? I mean, everyone could use one, so why not...

  • @thelethalmoo
    @thelethalmoo 21 วันที่ผ่านมา

    This is the one feature I just cant help feel super slow compares to multi-curser in vs code.
    Use mouce (pain), middle click and drag. Backspace, comma. Done.
    Ctrl and macros just never as fast

  • @luquest1848
    @luquest1848 14 วันที่ผ่านมา

    Does that mean you can 7@a to do all of them at once?

  • @pierceneupane8056
    @pierceneupane8056 21 วันที่ผ่านมา

    hello nerds!!
    if you press @ two time @@
    then it will replay the latest macro
    instead of doing @a

  • @dshaf7
    @dshaf7 16 วันที่ผ่านมา

    “The history of the things I’ve yanked” 😅

  • @darrishawks6033
    @darrishawks6033 16 วันที่ผ่านมา

    The easiest way to put it all on one line separated by commas would be to do a regex that replaces line breaks with ", "
    Just saying

  • @LeLouchMania
    @LeLouchMania 22 วันที่ผ่านมา +1

    Hmm groceries in vim 🤯🤯🤯

  • @YannMetalhead
    @YannMetalhead 15 วันที่ผ่านมา

    Good tip.

  • @tranvuong9034
    @tranvuong9034 22 วันที่ผ่านมา +1

    Interesting way to do it. Actually I use regex to make that happens :( A bit more works but it works

  • @simonlauer9379
    @simonlauer9379 22 วันที่ผ่านมา +1

    I am yanking all over the place
    kind of sounds dirty