thoughtbot
Chris Toomey talks about mastering the Vim language. Vim’s core is the amazing command mappings and text objects that allow for countless combinations to define precise edits. Learn how to master the built-in commands, motions, and text objects, and even how to extend the Vim language for even more power!
Slides: https://ctoomey.com/mastering-the-vim-language-slides.pdf .(tagsToTranslate)thoughtbot(t)meetup(t)nyc(t)Vim (Software)
Vim is not a language
I also learned new youtube shortcuts trying to apply the commands here
4:35 the language (basics)
5:36 repeatable & undoable
6:48 verbs/operators in vim
8:21 nouns in vim – motions
9:05 nouns in vim – text objects
12:18 nouns in vim – parameterized text objects (find/search)
16:33 where to learn/read
18:35 tips for mastering the language
20:35 relative number
22:45 visual mode is a smell
24:18 custom operators (from plugins)
24:42 tpope/vim-surround
26:02 tpope/vim-commentary
26:48 vim-scripts/ReplaceWithRegister
27:41 christoomey/vim-titlecase
28:21 christoomey/sort-motion
28:57 christommey/system-copy
29:52 custom nouns (objects)
30:03 michaeljsmith/vim-indent-object
31:08 kana/vim-textobj-entire
30:30 kana/vim-textobj-line
both requires kana/vim-textobj-user
32:15 ruby block
33:30 Finding more custom text objects
LanguageCommands.If I learned that many VIM commands I'd be worried of forgetting an actual programming language 😀
every day with vim I feel like it is my birthday.
Things you need to know
INSERT:enter text editing mode
ESC: exit text editing mode
:wq save and edit to cmd
I'm putting down the Emacs (org-mode), and backing away slowly…. wish me luck!
Amazing educator
I've been looking for a long time why I would have to learn vim and why people are so enthusiastic about it. This is the first video that explains exactly that instead of trying to convince me to use an archaic editor on my graphical OS. Very good video. Very clear. This makes learning vim a lot easier as well now that I understand this.
Funnily enough the 1st example is incorrect…"dw" does not stand for delete a word but for delete till next word.
It means that if the cursor is not placed at the beginning of the word to delete it won't work (the 1st part of the word will remain).
Use "daw" to delete a word with the cursor placed anywhere in the word to delete.
Where can I find the resources given in this talk? I figured they'd be in the description.
damn i'm in love with VIM
vim is not a language, but a command line based IDE
What's the clipboard utility he's using in the minute 29:15?
'f' – stands for 'following' and 't' for 'till' the char, word, whatever 😉
2019, im still listening!
So clearly explained, very smooth presentation, talks about best practices, and core principles of vim
well that explains that. Now i guess ima be vim guy…. cause neato, i thought it was just a good way to troll new linux users who need to edit config files. absolute genius.
Brilliant presentation. I love vim.
Me : The last thing I need in my life is one more tool to learn, I should focus on solving problems, Sigh and clicks anyway.
Chris : 2000 commands memorizing 30 intuitive things
Me : Aight keep talking
Been using vim for well over 7 years now and still learned a lot from this. Like he said – never reach the ceiling.
absurdly great.
https://www.youtube.com/watch?v=Jaa-LGyagRA this video is a good preparation of the current video, both are great, thanks a lot.
31:48 is is just cc in vim.
vim actually makes you think a lot since there are many ways to do the same thing. Not only are you thinking about the code you have to write but how control the cursor most efficiently, not sure if this every goes away but it can be really bad in the early stages as you learn more and more ways of doing things.
For example there are 3 different ways to scroll. Again, there's no one mental model for something as simple as scrolling the page. Something I find much better is map half and full page scroll to <nop> and map <c-e>/<c-y> to 8<c-e>/8<c-y>. e and y don't move the cursor position unless they have to. free-up 4 ctrl key mappings. easier to keep track of whats happening when you hold down scroll. speaking of..
I recommend setting up a really high polling rate and really low pause before repeat. helps across the board.
relative line numbering can cause significant slowdown in some terminals but really only an issue if you're working in an environment where you can only use a shell.
I don't use it for deletes or changes I'm paranoid and not sure typed the right number. I prefer V then blank line motion since there's no thinking, its fast(the blank line is almost always where I need to d/c to) and I can visually confirm the delete. I suck at typing letters and prefer small font so it certainly feels slower to trace down the relative line number (carefully scanning across) then type (but most often mistyping). easy motion or searching for unique sequence of characters in the area I need to go seems more fluid to me.
My desert island plugins are fzf and ferret(though, it doesnt work on windows). easy motion takes care of all cursor movement but just searching for the most unique string of letters in the spot you want to go seems more fluid. I wish I could recommend a code completion plugin or ctags/ctags plugin (since its vim's biggest issue for me personally) but I've tried several, several different times and they always have issues. Most other plugins are minor conveniences that could be added in a 1 line or little function (for the specific feature you actually make use of from the plugin)
Yank is to copy in Vim.. exactly this is why I don't use Vim..what you call intutive is just learnt skills over time.. intutive would be Copy being Copy…
The Unix folks rolled out some really cool tools: vi awk sed… On the contrary, Microsoft rolled out wasteful conventions: file path delimiter with back slash, space in file path. I have to deal with these craps everyday, it's a huge waste of human mind.