Vim’s registers are incredibly powerful. You use them all the time when you yank and put text or record macros, but are you using CTRL-R (in insert mode)? If you aren’t, you’re missing out on a huge efficiency boost! I will show you what CTRL-R does and how it can make you faster and give you even more uses for Vim’s registers.
If you’re already a fan of “the Z shell” (zsh), you may not need to read any further. If, however, you’re like me and have spent years in the Bourne Again shell (bash), it might be time to re-evaluate your choice.
I have used bash for a long time and reached a fair proficiency level in it.
I was doing things like looping over program output, filtering it, using
wc all the time. I could re-run commands from my
history in more than one way and reverse-search them with Ctrl-R. None of this
was news to me.
But then someone told me about this Z shell configuration package called “oh my zsh,” and I decided to dangle my toes into the waters of the Z shell and see what it’s all about. After all, the OS X terminal drops you into zsh by default; there must be something to it.
I’m never going back.
Have you ever wanted to test a new value for a complex Vim setting, like
comments, and been annoyed at having to print out the setting, memorize its
value, and then type it back in? There are a couple of ways around this that
are much more convenient, but I’ll show you a great trick for getting the
current value of a setting to work from.
Set aside for the moment the fact that Optimus Prime’s defining characteristic is his ability to transform. Pretend, instead, that he’s just an enormous, sentient robot. That’s what your keyboard would be like if you had mechanical key switches in there. Maybe you already do and this is old hat; if that is the case, move along. But if you want to learn about Cherry MX Blues and the siren song of the Rosewills and the Leopolds, by all means, read on.
Python is, by far, the language of your choosing when you need to build a toolchain of utilities that interact with local systems, servers, other software, running processes, and generally all things outside of your application development.
I leave out application development because I still believe that when it comes to server-side application code that lives for exactly one user request, the best language is the one you are comfortable with. It may be Python, but it may also be Ruby, PHP, Scala, Erlang, Haskell, or one of those new-age sparkly languages such as Go or Rust.
Yet, as you dig deeper into forking processes, maintaining a running state, cleaning up after yourself (I’m talking about memory, I will assume that you bathe), and generally acting predictably, Python is, without a doubt, your chosen language.
Why? I’ll tell you why.