vim is a tool that continues to amaze more the more I use it. It’s highly extensible and more importantly, it’s extremely easy to chain primitives together to create very powerful editing capabilites. In my eyes, the vim philosophies are “focus on primitives” and “expose everything”.
Recently I learned that you can open files in vim to particular lines:
vim my_file +72
This is a super useful part of my workflow that allows me to jump directly to where tests are failing.
I’ve also learned how to pipe files into vim:
unstaged | xargs -o vim
This has become my go-to method for editing multiple files since I can
grep for the files
I want to edit and then batch process them (technically I can use
argdo but I tend to use
I was reviewing my dotfiles setup recently and I realized that I was using another cool feature of vim which allows you to use it as more of an ad-hoc tool. My dotfiles setup has something like the following:
vim :PluginInstall :qall
This runs Vundle’s
:PluginInstall which install all of my dependencies then follows up with exiting
:qall. This is really useful as it pops into vim, does a few commands, then exits and returns
to my script. The moral of the story is that we can tell vim what to do via the command line.
Now I just need to figure out how to run arbitrary primitives like
Iworld<Esc>bIhello <Esc>:wq helloworld.txt<CR>
and then we’ll really have something powerful on our hands.