Vim as your editor - Advanced Motions P2

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ย. 2024

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

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

    Chief Edging Officer here. Real talk. Thank you so much for all the amazing support. I cannot thank you all enough. TRULY.
    You know everything I do is live on twitch? Where you can see me scream at you... BLAZINGLY FAST.

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

      Thank you!

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

      sus 🧐

    • @AG-ur1lj
      @AG-ur1lj 23 วันที่ผ่านมา

      I remember following this series as it was released. Most of these are 2nd nature to me now, but I came back to this one to check for tricks I might’ve missed.
      On rewatch, 7:32 has me a little confused? Why VY and not just Y?

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

    Thnx CEO of multi billion dollar startup.

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

    Love this series. Please keep em coming! Blazingly Fast. Love the laterally inverted plaque lol.

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

      WE ARE TRYING

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

      @@ThePrimeagen I shall send some coconut oil if it helps.

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

    the only person whose videos single handedly inspired me to dive deep into vim, learn some of the unusual stuff and gradually get good with it, congratulations to you prime for the 100K and also for these BLAZINGLY FAST contributions to the vim neighborhood. Keep the coconut oily movements coming!

  • @calder-ty
    @calder-ty 2 ปีที่แล้ว +2

    What I love about your vids is that they aren't pretentious "10 vim commands you don't know", but show so many cool tricks I've not used before. Almost every other video out there is the same 10 commands, probably all sourcing the same medium article on "obscure" vim commands.

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

    So glad you're doing this series. Your video on 'g' was the first of yours I watched and was blown away how f***ing entertaining you were. Not sure this would be vim-specific but it'd fit nicely in this series... a Regex series for things like the fighting kirby and any other oddities that go beyond the basic blob operator

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

      have a link handy?

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

    Love the o tip for moving the cursor in visual mode.
    Another nice one to have is gv to reselect previous visual area

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

      I was going to mention the “gv” Normal-mode command too. It’s very convenient after you made a mistake with Visual mode, such as selecting one line too few or too many as ThePrimagen did at 9:00.

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

    You can gp instead of just p to move the cursor to the end of the paste (rather than having to manually navigate). Works with P too, using gP

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

    You ALWAYS have something new to show about vim, I am very impressed... every time I see you, I have got something amazing and blazingly to learn!

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

    You are the only TH-camr where I need to turn the playback speed down to 0.75x. I watch most tutorials at 1.5x. Blazingly fast was an understatement, dude. Anti-clickbait, that's what it is. Next time I expect a more honest title such as: "Absurdly hypersonic, scratch that, faster than light-speed Vim" I loved every second (which in my case was 25% longer) of this tutorial. Been using Vim for about 1.5 years and some of the tips in this video still managed to blow my mind! Thanks Prime, solid as ever!

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

    This is actually insane. I've been with you since 9k subscribers and it's amazing seeing how much you've improved!
    KEEP KILLING IT PRIMEAGEN!

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

    Always watching until the end of your videos... there are just way too many priceless scenes that cannot be missed. And the purposed content is amazing as always. Great job, man. Also, congrats on the 100k and the plate. Deserved it!

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

    I've learned more new things about vim in the last 10 minutes than I have in months. You're a beast primagen lol. Please keep this series going!

  • @sergmont
    @sergmont 9 หลายเดือนก่อน +1

    I cant believe people actually work like this, this is incredible. I'm taking the leap of faith into believing this is worth ti

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

    It's like watching a Sorcerer revealing his secret spells.
    Thank you very much, that's awesome!

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

    @ThePrimeagen best thing i did to my config was making w => e while in operating and visual mode. If you think about it, you almost always want to use w (include space) while navigating, but use e (exclude space) while performing an operation. So this mapping just combines the two with almost no drawbacks

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

    This series is what I have always dreamed of. Thank you for doing this. The fighting one eyed Kirby is a game changer

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

    Felt compelled to comment again after watching all the way through. Please make more of these videos! 🙏 This one was hella useful. I already have the muscle memory for the individual steps you showed in this vid, but just hadn't quite figured out how to string them together to assassinate the repetitive little manipulations we do all the time (like your example of setting the elements of that `data` array).

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

      It feels so awesome when you get to it all together

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

    I finally started to using vim because of this series, this video is the first one that I have to "study" because IMO is the high level stuff, Keep the good work!!!

  • @YashGupta-dr5re
    @YashGupta-dr5re 2 ปีที่แล้ว +19

    8:40 Prime, I am really interesting in seeing a video about the vim sed commands!
    I have recently started using find and replace a lot in vim, especially where I used to do macros.

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

    Best vim course by far, you really dove right into it. Also everything is so fast haha, need to rewind 10 times to see what you just pressed, but it's amazing seeing firsthand just how fast a true Vim user can code. I'll keep practicing and hopefully will reach that level as well soon.

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

    the rule of watching ThePrimeagen video, you like first, then pressing the play button

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

    Damn, I like the g thing. Also, to go to the beginning or end of a function I usually go with [{ or ]}.

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

    Great video! I was surprised that you could do ci", di", etc just when you are on the line. For some reason I thought I need to literally be INSIDE the "
    That's a deal breaker :)

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

      yes, this is the mind blowing speeds of vim :)

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

    Another banger! This one I'll have to rewatch a few times to get it because my vimming isn't quite at this level yet. I guess that's why I'm only Principal Janitor of TheStartup. 😅

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

      Well... technically you are director of janitorial engineering...

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

      @@ThePrimeagen I stand corrected, Mr. CEO. I will update my business cards and email signature appropriately. 👍

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

    I just found you and I feel soooo goo bc I already knew every single trick showed heere, I feel so proud of me 💌you are such an inspiration, keep goiing!!

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

    This series is awesome. Learning new vim tricks every episode!

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

    The "vi{" gold nugget at the end also works when editing massive HTML/XML/etc. documents on which you have no idea where a tag begin/ends. You can use 'vit' or 'vat' (select inside tag, or select around tag -or whatever the 'a' means), and it's a good way to jump between opening/closing tags. Pressing 'o' (like in "oily, coconut-oily") helps moving to the start/end of the selection.
    As always, great video, Primeagen. I felt walking through the Valley of Shadow of Death every time I had to edit an array.

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

      Even better gold nugget: ]} or [{

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

      @@andyw732 Ty. I need to try that. I believe I saw that somewhere before, but didn't work for me 🤔

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

    Keep them coming!
    There is also " :.,.+{numer} norm " to apply a sequence of comands in normal mode from current line + {number}. For exemple, insert a semi-colon at the end of 3 lines: ":.,.+2 norm A; "

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

      You can pre enter ..,..+{number} by pressing, in normal mode, {number} followed by :

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

    Damn your vim skills are in god mode!
    Going to take away the % sign tip and work it. Thanks for all your vids, I still go back to the original 1-6 series to refresh skills 👍🏼

  • @Dongdot123
    @Dongdot123 8 หลายเดือนก่อน

    I can't believe I'm touching and even learning vim again after I hated it for a decade, just because of this channel

  • @TheBusttheboss
    @TheBusttheboss 8 หลายเดือนก่อน

    This series really convinced me to start using Vim motions. Now I have Evil in my Emacs :)

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

    I recently discovered a (pretty stupid) trick: map and to "4j" and "4k". Then whenever you're holding J and K to scroll, just hold the ctrl key as well and you will scroll 4x faster.. Great for when you want to quickly move the cursor like 20-30 lines and don't want to think about it.

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

    loving these motions which go into a pair of parens / quotes and do stuff inside them.

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

    that background makes gruvbox that much more #hawt prime...glad I stayed until the end!

  • @kevinwood5048
    @kevinwood5048 11 หลายเดือนก่อน

    I’m on team built-in vim motions for the exact stated reason that they will likely work in whatever vim ide plugin you’re already using. Excellent advice!

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

    I have always used the vertical select mode to g+control+a, loved to learn that just selecting it with line visual is enough, so much easier! And the "o" to go back and forth in visual mode, also didn't know that! I guess it can be used with the extra tip and the end, if you are in the middle of a humongous json thing, you can do a vi[ and then "o" to go to the top as well.

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

    I watched this whole video in 0.25 speed and still had to go back a few times. Loved it.
    You just earned another subscriber. Time to check out your other videos.

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

    seat-belt sign is the beautiful motion

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

    5:20
    Instead of doing va}Vd you can also do dVa}
    dV is line-wise delete. The advantage to doing dV instead of V...d is that you can repeat it in any pair of curly braces. Repeating V...d just uses the static visual selection, i.e. the same number of lines all the time.

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

      much smart!
      i didn't realize you could chain it like that!

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

    Holy shit. This is one of most informative videos that are very entertaining on this entire site

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

    just don't stop teaching, you're the best!

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

      who says i am teaching? :)

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

    Suggestion for Your bonus tip At the end of the video: vi{ can be replaced by ]}, which will bring you to the end of a “scope”. I think you can repeat by using ; which will navigate to the end of the next (inner) scope

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

    Me listening to Prime talking about VIM:
    "I like your funny words magic man"

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

    I love your videos .... Now I have switched 50% of my workflows to nvim and can use it to get things done. Thanks to your video it's not that scary anymore :D

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

    If you don't already know - 'verymagic' mode makes writing regular expressions easier (all keys have their special meaning by default besides alphanumerics and _), and it's negative 'verynomagic' is equally great for verbatim text

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

    Man I'am from Russia. Thanks. My speed In Vim going to the sky. U're godlike

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

    Vim god hath once again bestowed upon us new knowledge

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

    Bruh, your Vim videos are so mind blowing, looking forward to coming back and actually understanding half of what you did in this video lol

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

    I didn't even KNOW about p for paragraph and a in visual mode for "around". Nice to keep on learning movement! Finally in my "advanced" phase, I miss seeing new content, like this!

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

    I am still learning so much by seeing Prime use vim 😍

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

    Glad I watched till the end, but happier that caught a glimpse of the elusive plowghini.

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

    Thanks! This series is pure gold. Keep it up, please!!

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

    One thing I started using a whole ton is capital J - blazingly fast line joining and useful in a lot of cases.

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

    I learned alot of great tips here, and I've been using vim for a decade. Thanks

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

    I may have converted years ago at this point, but I always learn something useful from these!

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

    thanks so much brother ..you are my inspiration ..started using it since 1 week ..just loving it ! ....thanks again from INDIA ..this vim skill is MUST NEEDED !

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

    Glad I stayed to the end.
    BTW I still do :10000 to go to the end of the file just because It has a great result and I dont have to think about how to get to the end.
    Just saying since you learn something that is not 100% effective does not mean that it does not work.

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

      ... so you press G?
      but you are right, you don't have to do things the bestest, you have to do them the way you enjoy them the bestest

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

    "glad I watched until the end."

  • @MaxPenderuk
    @MaxPenderuk 8 หลายเดือนก่อน

    Dang, I love this coconut oiled shiny, amazing, super series💥
    Thanks a lot 💪

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

    I dropped my phone while watching this. Too much coco oil.
    Thanks sir, I am starting with vim and this is just needed. Would love one where you talk about what you think the “needed” plugins for a bare minimum vim setup are. Keep up the good work Maria.

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

    Slight improvement (IMO) for that last very large array scenario - ]] will take you to the end of the array and [[ will take you to the start (same with ]} and [{ ). That said, the visual mode way shown works with more objects so one could argue it incurs less mental load by being more general.

  • @7h3mon
    @7h3mon ปีที่แล้ว

    Thank you for all videos about Vim Movements! I walked to the end!

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

    you can also do "dib" to delete inside any kind of parens/braces which I find is easier than having to think about what kind of braces you're in or reach for "%"

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

      Oh man I've slept on the "ib" motion and the like, good call

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

    DAMNN.
    I was hesitate to gave up vim after my boss demand I switch to window and vscode like a "normal person".
    Fuck him.
    Those tips are killer, chief.

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

    This one was meaty, gonna have to rewatch a few times to note everything lol (and now it's probably a good time to learn how to use Treesitter)

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

    I recommend the "." command for the array asignments, at least if you use a single edit to do so: [uppercase I] [end] [esc]

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

    Just an update, you can also use f with around or inner to select a function, as well as "a" for arguments (if you use treesitter). So for example, to delete a function you just do "daf" or "delete around function". To change the argument your cursor is over you do "caa" or "change around argument".

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

    Thanks a lot for this video. I

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

    Is this the Dr. Disrespect of the IT world? Nice content!

  • @alexheslop2917
    @alexheslop2917 10 หลายเดือนก่อน

    Nice little custom normal mode command I have is +semi-colon, for all you c/cpp devs out there who are fed up going to the end of a line to add a semi-colon

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

    Thanks! I did not yet know about that combination of the g key with that Ctrl a and x increment and decrement.
    However, I tried something really interesting too, might be worth sharing. And that is trying the 0x and 0b notations for hex and binary numbers, and it turns out that Vim recognizes that as well with this incrementing and decrementing. Very cool!

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

    WOW ::::: Mind blown 🤯
    I didnt know about the ctrl + a
    and about the substitute abilities in vim and you can use regex like selection in it
    I will gladly use these new information in my beautiful blazingly fast VSCode VIM 🔥

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

      OH NO!!!! s/\(\w.*\)/data[0] = "\1";
      doest work in VSCode vim 😠

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

    Listening to the audio only, without knowing anything about vim, is a wild ride.

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

    you can use :keepjumps command to not store stuff in the jumplist
    map("n", "{", ":execute 'keepjumps norm! ' . v:count1 . '{'")
    map("n", "}", ":execute 'keepjumps norm! ' . v:count1 . '}'")

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

      ty, not sure why those jumps store by default, pretty useless

  • @Nope-12485
    @Nope-12485 2 ปีที่แล้ว +1

    Your array example: I sadly would have just used a macro that completes the edit and moves the cursor down a line so I can spam @@ to repeat
    Why I love watching your videos. I learn different/new ways to solve my editing problems! Thanks @ThePrimeagen

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

    This video is good, the only down side is that you must watch in 0.25 speed.

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

    At 6:42 you can also just do a '=] instead of >4j which is the "Smart paste Tip 1593"

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

    I am also able to select a whole function using „vafV“. After watching the video I was playing around a little bit. Perhaps its a feature of treesitter? Also thanks for pointing out the function of the o key in visual mode! You improved my life.

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

    I am SO glad I stayed for the end of this video

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

    Could you do a review of the Kinesis Advantage 360 ? Love Keyboards, vim and your content 😙

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

    Damn, man your motions were so fast, that playing video on 0.25 was not enough to understand some keystrokes.
    Seriously, I found some useful motions. Thanks and keep going!

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

    I love how you sprinkle :w everywhere

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

    Amazing content dude! I would love to hear your thoughts/strategy on macros?

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

    At around 5:30 mark, you could use nvim-treesitter/nvim-treesitter-textobjects which add functions and classes text objects. You could do for example daf to delete a function, or dif to delete inside of a function.

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

      yeah, but i am trying to avoid motion changing items I really worry about building unusable habits.

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

    "today we're going vertical"
    I feel there's a 'that's what she said' joke there somewhere 😂

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

    This guy's about convinced me to start using some archaic 30+ year old piece of software

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

    I like it before I see it!

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

    As for your last tip, one thing I end up using quite often is O to jump at the first or last line of a selection without leaving the visual mode.

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

    ufff such great efficiency, one can only hope.

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

    Thanks for the great videos! I always enjoy discovering the intersection my vim workflows with those of other folks.
    I was a little surprised the you don't introduce `yap` and `dip` using the mnemonics for `a` and `i` that I think I remember learn them under: "delete AROUND para" and "delete INNER/INSIDE para". I always found the "around" and "inside" mnemonics useful, but I honestly can't remember at this point where I learned them.

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

    consider giving helix a try, it's vim-y but it helps you along the way with hints - and it's written in rust. also - it's LSP first, so no fffffffffreaky plugins

  • @user-he4ef9br7z
    @user-he4ef9br7z 2 ปีที่แล้ว

    I'm just glad you returned to gruvbox.

  • @AnNguyen-vd8wv
    @AnNguyen-vd8wv 2 ปีที่แล้ว

    I really love your videos and TJ's videos, you guys really talk about neovim/vim. I hate other show-off guys always talk about their setup which is nobody F*king care

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

    That was indeed Blazingly Fast TM

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

    Glad I watched it till the end... 😄 I made myself a macro for that regex and oh boy, oh boy... coconut oil is dripping!

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

    o in visual mode is insane

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

    lord coconut oil

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

    Sweet coconut oil infused goodness right here

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

    In 8:50 you don't even need a capture group as `&` in the replace segment of `:substitute` inserts the entire match. This would work: `:s/\w\+/data[0] = "&"/` and it's easier to type.