Thanks for the amazing video here are some of my notes! 1:00 vim has a mythology of being impossibly hard. 2:30 Stay out of insert mode. 3:30 Disable arrows, to work on getting used to hjkl movement. 4:20 As you get more advanced let go of hjkl 5:00 learn advance shortcuts w instead of l (moving through words) b (back) e (ends of words) ge (back end of words) f (find) 5:50 advanced functions to delete chunks of phrases "t" "ct" 7:12 delete find df (delete til it find a specific symbol you are looking for) 8:40 relative numbers (example -16,-1co.) this copy pastes a chunk above the line where you are (or below) 9:20 H M L (migh medium low)
@deanzhang90992 жыл бұрын
'-16,-1co.' co means 'copy command' in vim, '.' dot means here also current line. so the whole command is : copy -16,-1 lines to current line.
@KayOScode5 жыл бұрын
Vim is terrifying. Terrifying knowing that there was a time I didn't use it.
@VictorRodriguez-zp2do5 жыл бұрын
I still don't understand how I got by without vim
@jandrews3775 жыл бұрын
After playing around for a few days with 'vimtutor' and 'vim adventures', Im starting to think i've wasted the last 20 years with 'joe editor'. Replacing my IDE with vim/tmux is now my new years resolution.
@VictorRodriguez-zp2do5 жыл бұрын
@@jandrews377 Tips for the IDE idea, new versions of Vim and NeoVim support a terminal buffer, there's the asyncrun plugin: commandsgithub.com/skywind3000/asyncrun.vim for running commands in the quickfix window allowing you to quickly compile code without living your comfy vim. and the best plugin for syntax checking I have found so far is vim-ale. For code completion there are way to many options so pick your own poison. Hope it helps you
@jandrews3775 жыл бұрын
@@VictorRodriguez-zp2do Thank you Victor, great advise, ill check both of them out.
@wuxi87734 жыл бұрын
I even use vim to reply to you
@roundyz32795 жыл бұрын
tips start at 2:34
@abelberiyoterefe52278 жыл бұрын
Thanks for sharing your tips. I found this really useful. vim-surround: s (
@abhishekslab2 жыл бұрын
I just started using vim, added vimium to my browser too. This video has some really practical advice on the issues beginners like me face, thank you for putting this out.
@Mephistolomaniac8 жыл бұрын
if you add "set path+=**" to your vimrc, vim's own :find command becomes a pretty decent substitute for a fuzzy finder, provided your working directory is always set to a project root
@matobago5 жыл бұрын
Mephistolomaniac I was about to comment this.
@anirudhrowjee13785 жыл бұрын
yeah! and the way to begin using fuzzy-find is :find
@xarcaz4 жыл бұрын
Please don't.
@Adolf1Extra4 жыл бұрын
If you have folders like node_modules and/or composer's vendor, this absolutely murders performance. Just use a plugin that does the same but uses gitignore to build paths
@stillcuriouslychase9 жыл бұрын
“Your old editor is already eclipsed" 😂That was awesome.
@monsterpda5 жыл бұрын
It's also bs...
@LusidDreaming5 жыл бұрын
Yea it kind of is bs. I only actually use vim on the server but I have vim extensions for all my editors/IDEs. I'll say that using the extensions isn't the same (although the Intellij one is incredible), but they're enough to make editors like Atom much more productive. But I also code a lot of Java and I'm too lazy to set vim up for that. The interesting thing here I think is that you could actually make that argument about emacs, although I think it has more of a learning curve
@devikapluspoint83064 жыл бұрын
@@LusidDreaming vim has quite a few advanced stuff that only vim can do.
@damian_madmansnest Жыл бұрын
@@devikapluspoint8306 like what?
@simonced9 жыл бұрын
My favorite motion is `}` that moves me to the end of a paragraph. I realised that I tend to try to program blocks by paragraphs just to move arround by `feature`.
@TeganBurns7 жыл бұрын
This is what I use too but it's a little annoying when visually selecting text.
@will2r4 жыл бұрын
when he said "most editors don't really do anything ... most people just spend time making it look pretty" very true
@magnusanderson66814 жыл бұрын
You got to remember for most big IDEs they also spend time making them laggy... while still not doing anything
@frozen_tortus9 жыл бұрын
whoever decide to install hard mode prepare for a lot of a frustration.
@richey34744 жыл бұрын
I'm new to vim and never understood why people would use relative line numbers ..... now I do ;) THX!
@JoseRamonCanoYribarren8 жыл бұрын
Easy motion: the best vim plugin ever made. It gets you from any character in the screen to any other character with 3 to 5 key presses. Once you get used to it navigating in a Vim without easy motion is a pain xD
@xx-cj6ew4 жыл бұрын
8:05 wouldn't you rather use d2} instead of bothering trying to look at the line and figure out how many lines you need to delete? You know you want to clear two "paragraphs" worth of info and d2} comes intuitively from that thought, whereas 7dd requires stopping and then looking at your relative line numbers.
@MitzaGamer8 жыл бұрын
I was not aware of relative line numbers setting. It's super useful, thank you!
@nahoskins5 жыл бұрын
I've been using Vim for almost a decade and I'd never heard of that one!
@HeadCodeMonkey824 жыл бұрын
I'm glad you called out the needless gatekeeping around vim. I don't need my ego stroked, I need vim seen as a rational option so no one minds me using it and being happy. I'm sick of being told to move to an IDE!
@ReductioAdAbsurdum9 жыл бұрын
The example given for relative line numbers is an anti-pattern. Rather than "d7j" you should have used "d}."/ "dap" or "2d}"/"2dap". Ironically you had just finished explaining why it's better to operate at a semantic level, or at a highest level of granularity available, then you did an operation using line numbers (non-semantic, not repeatable) which could have been done semantically (operating on paragraphs).
@Joschasa9 жыл бұрын
ReductioAdAbsurdum d2ap
@ReductioAdAbsurdum9 жыл бұрын
***** Even better.
@paullocasto67108 жыл бұрын
+ReductioAdAbsurdum In this context I'd disagree since he was using the command to demonstrate relative numbers. The context makes the commands you suggest nonsensical. But I agree that using the most superordinate word objects possible is good practice.
@madsteeez4 жыл бұрын
@@Joschasa what does the ap stand for?
@Joschasa4 жыл бұрын
@@madsteeez ap is "a paragraph", see vimdoc.sourceforge.net/htmldoc/motion.html#ap
@prasannarajaram2 жыл бұрын
Watching this in 2022. Still makes so much sense. Thank you folks!♥
@xXhotshot55Xx2 жыл бұрын
Add both "set number" and "set relativenumber" in your .vimrc file to always see which line you're currently on and have the relative numbers to jump to.
@magetaaaaaa Жыл бұрын
I do this and it's great. You can make jumps to precise locations on screen while still seeing the line number. I feel like relative line number is more useful than the actual line number but it's trivial to just turn on both when you need it.
@LifestyleLogger5 жыл бұрын
No way as fast editing in just two weeks as a regular editor like Intelij.. takes months to build the muscle memory to gain the real speed advantages... plus to configure and plug in the holes that vim falls short on.. having said that its really satisfying and well worth the effort... I'm loving it, it's my primary editor now!
@LusidDreaming5 жыл бұрын
You should try out the vim extension for Intellij. It takes a little configuration because you'll have to turn off the default shortcuts that conflict (Ctrl+c, Ctrl+v, etc) but it's pretty easy to do and then you get the greatness that is Intellij combined with the agility of vim commands
@LifestyleLogger5 жыл бұрын
@@LusidDreaming Yeah it is good. I've used vim plugins for Visual Studio Code and intellij..When you're in a locked down network, and only have access to certain tools this is a good way to go. I like plain old Vim as you can configure it to be your own IDE.. Intellij is very good but it does have a tendency to slow down in my experience and hog memory.. Vim when is configured well it can do pretty much everything that intellij can do.. Although I haven't managed to replicate local history yet...
@magetaaaaaa4 жыл бұрын
I learned the bare minimum of Vi simply because it ships with everything and I know it will always be available. I thought I was decent just being able to get around, but this stuff is on an entirely different level. These guys are like Vim gurus.
@uwinvidanage22524 жыл бұрын
yep, it took me a just 2 days to get reasonably good at it, i avoided it for soo long thinking it was hard
@christiansaborio4104 жыл бұрын
LOL, I launched vimtutor after you mentioned it and started doing the tutorial while listening to this in the background. It started with the j/k keys to navigate...I said "nah, I'll just use the arrow keys", and of course that was at minute 3:31 when you scolded me for doing so - brilliantly timed! 🤣
@fukuyama22524 жыл бұрын
One important thing I can remember about vimtutor is that you really should make a list of those commands to remind yourself of all those possibilities so that you don’t have to search them all the time.
@TomaszWiszkowski5 жыл бұрын
one more cool thing about the motion actions (eg 'dt{') is that this is an atomic operation that has a single undo step. pressing and holding 'x' for 15+ seconds will generate a bunch of undo operations for every single character. `dt{` is just a single undo. repeating this later has the same effect, so it's much easier to navigate my own changes (especially if i need to undo anything) - navigating, say, 3 undo steps is much more convenient than navigating 300...
@strange_charm_x7 жыл бұрын
If you write "set number" and then "set relative number" in your .vimrc file, then the 0 number will be the line number. Much more practical in my opinion, otherwise you would have trouble knowing how many lines are in a file.
@allegoricalstatue6 жыл бұрын
Thanks! was looking for this.
@prestonrodeniser8936 жыл бұрын
I went to add in relative numbers in atom, and found out they automatically do it this way!
@blankvoidsea6 жыл бұрын
You can directly go `set relativenumber` without `set number`. When in command mode, just go `:set rel` *don't type the apostrophe...
@knowledgeispowerrr9 жыл бұрын
I am learning a lot from your channel. Keep up the good work and thanks a lot!
@dorusie54 жыл бұрын
I got the stupid idea in my head to learn vim, and I got super frustrated. That lead me to this video, and now that I'm practicing and setting custom shortcuts with the leader commands I'm finally starting to catch on and that's super cool. Frustration is a good teacher, although an annoying one. Might look into vim hard mode once I get a bit more used to hjkl navigation (I remapped my arrow keys to tab navigation, and that's a good punishment whenever my reflexes bring me back there). Great vid!
@monugupta327 жыл бұрын
Saw it as a beginner months ago, coming in as in intermediate again. A happy journey so far.
@tpat904 жыл бұрын
Vim actually supports fuzzyfinder by itself. You don't need a plugin for it. Changes to .vimrc set path=+** set wildmenu Usage :find *.tex Congrats you achieved fuzzy search without a plugin.
@eirinispanopoulou1124 жыл бұрын
excellent video! Any ideas on how to enable line 0 to follow the cursor?
@blackstyme3 жыл бұрын
:set number relative
@oseikofi52907 жыл бұрын
lol damn these guys just made me know i am inefficient in my vim usage Thanks guys
@johnpark4577 жыл бұрын
It was a very useful lecture. It should be used frequently, but it seems to be good for the beginner to give us some unfamiliar details. Thank.
@fernandojsantos094 жыл бұрын
This is the 10th time watching to learn more and more from this material. Such a great video....
@harshalagrawal037 жыл бұрын
I converted my hjkl to jikl and using 'h' for insert mode. It makes more sense to me. Sometimes I carry my own .vimrc
Do you feel we should just disable "Key repeat" all the time, or turn it back on in the future? I know for Vim it makes sense, and even on other programs where one wants to delete words we can just use "Ctrl+backspace". But I don't know if it's a good idea for other programs, specially if one uses Adobe CC. What do you think?
@ReductioAdAbsurdum9 жыл бұрын
BlastOffLab I not only turn it back on, I crank it to ridiculous levels (beyond the max allows by default OS utilities: google it for your OS), then use it when it's faster or less intrusive to my mental workflow than counting/scanning and crafting semantic commands.
@adrianthomas41638 жыл бұрын
Love this video. I always come back to it.
@snapman2189 жыл бұрын
Biggest nerd ever. Love it.
@johnc34034 жыл бұрын
Well, not to pick a fight here ;) but if I type a w instead of a q, isn't it quicker and easier to hit the backspace key with my right pinky rather than leaving insert mode to hit x then i to get back. Surely hitting a single backspace without leaving the mode is best?
@paultwocock54213 жыл бұрын
Vim, if u you're absolutely beginner This book "vim from wtf to omg" will be useful for you
@antoniomoranmunoz94888 жыл бұрын
2:30 He reminds me to Russell Crowe in 'A Beautiful Mind'
@jazzochannel4 жыл бұрын
yeah arrow keys are great to disable , if you are lame enough to stick with qwerty , but you need to remap them in a clever way as to not kill other nice motion commands if you are on dvorak or colemak.. just sayng. I am currently using the HHKB2 keyboard and I regret not having remapped hjkl when I started using colemak because the arrow keys are only available while holdin the function key.
@poshakajay7 жыл бұрын
What do you suggest for multiple cursors in vim ?
@traal5 жыл бұрын
ajay poshak so multiple cursors look cool, but I’m not sure they’re super efficient. When I watch KZbin demos with multiple cursors, what I usually want to do is search, change, next, repeat: 1. Search for the current word (e.g. function name) with asterisk (*), make sure “hlsearch” is active for visual feedback. If you want the cursor at the end of the match, hit /, up arrow, add /e to the end of your search expression. 2. Make a single edit; usually change inner word (c i w), insert, or append. 3. Use n (next) and Ctrl-o to move between matches 4. Repeat edit with dot (.) - do steps 3 and 4 until done. If you’re doing a large number of change inner word (c i w), that’s an anti-pattern, and you’d save time by using ex commands: :%s//new_function_name/g Those two strategies do what I’ve seen multiple cursors do, but in a vim way.
@japhethjay48804 жыл бұрын
found the :copy command while he was teaching and did a little more research and found that :t will do the same thing its an amazing command for copy whole methods or functions am glad I watched this again.
@runningonthestreets7 жыл бұрын
How to copy text from VIM to system clipboard on Linux? Thank you
@systemofadown19867 жыл бұрын
try crtl + shift + c to copy from vim
@graphics_dev59186 жыл бұрын
Copy to the * and + registers with, e.g., "*yy or "+yy. I don't remember which one it is right now...
@FlashManinSpace8 жыл бұрын
Vim 8 have arrived! 😄
@io_inc3 жыл бұрын
I remember spending 2 days trying to customise the look and feel
@maxmeranda7 жыл бұрын
My first plugin? Vundle. Might be logical, but it makes plugins so much easier to install and maintain.
@DevvratSingh0072 жыл бұрын
Never knew Bruce Springsteen taught Vim.
@tpat904 жыл бұрын
A topic fully missing is tags, which are one of the best way to move in any programming language.
@Kah0ona8 жыл бұрын
Great vid guys! very useful. I feel so dumb not knowing H M L. I do some anti-patterns still occasionally, great tips for getting rid of them.
@hackerzol5 жыл бұрын
And don't forget their cousins, zt, zz, and zb which move the focus of the current line to the top, middle and bottom respectively.
@arsacode61453 жыл бұрын
You know what rustles my jimmies? I use latam...my home row is asdf jklñ and god knows I've been trying to find how the hell to configure jklñ to the movement keys but can't find SHIT about how to do that. I use vimium in my broswer, I set my command line to vi mode and after using vim for a while I just don't understand why the hell it's not supported EVERYWHERE because it's just so awsome...but I need to change the movement keys...
@madsteeez4 жыл бұрын
Can vim auto create a method I just used that hasn't been implemented yet?
@mmtf7 жыл бұрын
Video starts at 3:30 for people who already know vim
@graphics_dev59186 жыл бұрын
Video starts at 14:53 for people who already know vim. I've been using Vim for 3 months and actually learned nothing in this video. I have gone a little crazy with my 3 months of Vim though since I've already written a some plugins and a simple autocompletion engine.
@sagarmalhotra14095 жыл бұрын
Vim is hard if coding is not your day job and you do it only occasionally. If you code a lot, it’s much easier.
@Epsio08 жыл бұрын
how am I suppose to write code if I should avoid insert mode?
@dariocruz78918 жыл бұрын
+Epsio0 hahaha, that was a funny point. Anyway, what he meant was that typing "i" in order to get in insert mode should be highly avoid, normal mode gives you the power of navigation and deletion without accessing insert mode. Also, Normal mode will give you access to insert mode at the right time and at the right location if you use it well. And as he also mentioned, once you are in insert mode, do what you need to do, and then you get out of there.
@matpsycic7 жыл бұрын
Epsio0 don't lie.. you copy and paste from stackoverflow anyways lol..
@ethanffischer7 жыл бұрын
Someone needs to make a relative lines plugin for sublime text. I'm using vim keymappings and loving it, but not having relative lines makes me feel like I'm missing out (And before anyone mentions VintageLines, it doesn't work for me and seems to be kind of a hacky implementation)
@strange_charm_x7 жыл бұрын
that haircut tho
@catalinoprea53134 жыл бұрын
both of them have a funny haircuts
@5ystemError4 жыл бұрын
Honestly it's so strange that it actually looks kinda great
@jizhang24073 жыл бұрын
Thanks for sharing this very clear and informative video.
@ndhung71836 жыл бұрын
Oh, nice. But how to set current working line is always 0st Line?
@Argletrough5 жыл бұрын
:set nonumber (I think?)
@rootytuners5 жыл бұрын
@Duy Hung Nguyen - :set relativenumber
@AmiayNarayan-z7q9 ай бұрын
if someone asks you to give an example of gem, you should share the link of this video
@muskyoxes4 жыл бұрын
"it's not that hard, it's not that scary". It's different from normal stuff, which means it automatically and definitely is hard and scary for almost everyone.
@wil7vin7 жыл бұрын
Great tips Man those plugins sure look neat don't know why i haven't found those before!
@AubreyLavigne4 жыл бұрын
Stop using Relative Line Numbers! For that example, instead consider the following command: dap. ^^ deletes the current paragraph (and spaces), then repeats the action for the next block.
@HomelessFooser5 жыл бұрын
6:48 direct reference to the movie, "Office Space"
@holalluis6 жыл бұрын
i don't think that "ctrl-p" is needed. The builtin fuzzy file finder is pretty good
@johannesberger86415 жыл бұрын
Whoa, just checked the fuzzy file finder out. That is incredibly cool
@johannesberger86415 жыл бұрын
@@JohnDoe-qz9ji Just googling "vim fuzzy finder" yielded this gist.github.com/csswizardry/9a33342dace4786a9fee35c73fa5deeb
@leor6553218 жыл бұрын
wow, have been using surround for a while but didn't realize it gives you the option to surround with and without spaces. feeling stupid for not having checked that earlier.
@jazzochannel4 жыл бұрын
disabling key-repeat is probably the one advice I disagree most with. I use xset r rate 290 52
@AnyFactor5 жыл бұрын
This video and many other vim related videos of thoughtbot have been sitting in my watch later playlist over many years. Now that I am here....... I am just write to make this comment and hopefully watch the video some other day. Wish me luck. Edit: Finally watched it!!! Yay!!
@zorbat55 жыл бұрын
Watched it yet?
@AnyFactor5 жыл бұрын
@@zorbat5 Yes, I have. Finally. I got the recommendation to watch this from reddit. So, this time I watched it. I wouldn’t say I could get started with hard mode yet, I am still heavily relied on hjkl. But I sure will try to disable my arrow key, and start being in normal mode more.
@fernando738202087 жыл бұрын
whats the plugin to keep the cursor at 0?
@greggomn7 жыл бұрын
It's built into vim already, just use :set rnu
@donaldli18644 жыл бұрын
Ctrl-f used to be one screen forward, some genius changed it to search. Why do you do that when / already does search? It's like amateur Windows user's feature.
@seanrosario52234 жыл бұрын
speed with vim is exponential when given time. I can say from experience
@kevyyar4 жыл бұрын
I'm learning JS while learning VIM is this good? First programming language ever BTW I'm a total beginner
@PplsChampion4 жыл бұрын
vim is nice but i recommend you download webstorm or another jetbrains ide that supports javascript if you're a beginner, because it will explain/fix many common errors for you. imo sublime and atom are garbage in comparison to either.
@araa51844 жыл бұрын
"Ugh 2 inches? Why do I have to do that when I can do 1 inch"
@shopnil5 жыл бұрын
where can I get this colorscheme?
@derekcarday5 жыл бұрын
love this. Thanks you two!!!
@vertigo69826 жыл бұрын
swap out your keyboard for a customized steno machine and go warp speed.
@RifazNahiyan8 жыл бұрын
Coding becomes a lot more comfortable if you get used to using Vim! You feel like, "why didn't I do this before?"
@workerbee14126 жыл бұрын
gv will repeat the last visual selection. so select some stuff visually and then run find and replace on a large chunk of code. Just learned that one today. :s/oldCSSClass/newCSSClass/g
@dadecountyboos3 жыл бұрын
I might actually try the plug in, thanks homies
@monday67405 жыл бұрын
Interesting - ... got a lot to learn still. I actually spend most time in Insert-mode, cause it's a natural thing to do - at first
@rtnjo69364 жыл бұрын
the guy on the left looks like Benedict Cumberbatch ) Thank you
@nkristianschmidt Жыл бұрын
To be fair, humans are not ready for vim.
@morsedigital75387 жыл бұрын
Really useful. Thank you!
@Piliponful5 жыл бұрын
It's not 15-20 minutes
@thomasip99388 жыл бұрын
Shift H M L is live saving!
@fvl90454 жыл бұрын
oh really, tell me how did it save your life?
@metalelf09 жыл бұрын
Hi Ben! What's your opinion about the easymotion plugin? I'm totally in love with the vim-sneak like movement , `s`... I use it for 99% of my motions!
@grizant8 жыл бұрын
Thanks for the Vim tips, Elliot Coleman from Good Tiger!
@LusidDreaming5 жыл бұрын
Great band! I miss Safety Fire, but Good Tiger has helped heal that wound
@supernenechi3 жыл бұрын
But how do I exit vim
@jazzochannel4 жыл бұрын
All it takes is enough patience to read vimtutor. I think I was happy with vim for 1-2 years without learnig any new stuff after having done that! The stuff you can do after vimtutor beats nano, joe, and all the other stuff in the terminal by a mile! (I never bothered learning emacs, so idk about that one :). "Elitist attitudes" are not a thing. It is up to yourself to decide what you want to learn and not. I am for example not ready / willing to learn kernel & drivers programming - nor will I ever be (probably - because I have no need for it). However, I wrote my first c program that interacts with X via xlib last December. It wasn't easy, but it was certainly not impossible! Now I'm trying to become as effective in go as i am with php/bash/awk/sed - because it makes sense for me at this time to do so.
@anakinskywalkerrr5 жыл бұрын
I used to be hardcore sublime fans, but when I test the sublime vintage mode, now VIM4life!
@johannbauer28635 жыл бұрын
3:15 uses 'set mouse=a' * looks left * * looks right *
@madsteeez4 жыл бұрын
I like vim, but I'd be missing all those tips and auto features of an ide..
@caspianahlberg90274 жыл бұрын
1. Kite, autocomplete; 2. NERDTree, file browser, 3. :terminal, run a shell process. Those are pretty helpful
@aa-pt2qb8 жыл бұрын
But have you tried to get used to sublime though? I mean, the package-manager is pretty cool for a 'text-editor', so are the multi-cursors, or the ctrl+p file opener, the project settings, all the possible extensions, it has just like vim, the g:oto line command and much more.
@breadtoucher8 жыл бұрын
You can have all of that in Vim. But Sublime has like 5% of features of Vim. Once you go Vim there isn't any point in going back, since every other text editor is slower. Give it a shot for a few weeks. I forced my self few years ago by uninstalling every other editor in my computer. In begining it was pain, but now, I hardly ever open Atom.
@prajwalgaonkar5 жыл бұрын
This guy on the left looks like shroud.
@yonglelyu41178 жыл бұрын
great advice for newbie!
@jackfrasiercomedy59426 жыл бұрын
Probably one of the best intro to Vim tutorials on youtube. Thanks!
@LOLBORGINI7 жыл бұрын
I expected video to address the Vim slowness issue
@branquitodemunze5 жыл бұрын
what is this?
@MohamedSaleh016 жыл бұрын
relative numbers makes my vim extremely slow :(
@valvarexart5 жыл бұрын
Try neovim
@jazzochannel4 жыл бұрын
It took me probably 3 x 15 minutes to get through and absorb the info and practices in vimtutor. I think you two are either very good at memorizing in general or have very good eye/brain - to - hand coordination. I am slow and tenacious in general (e.g. always finishing exams last), but I think 15 mins is a bit of a lie.