2 UNIX anti-patterns


Using visual mode in vim is often like using cat in UNIX: unnecessary. If you’re uncharitable, it indicates a lack of understanding about the basic philosophy of each piece of software.

UNIX tools are designed to work on files and STDIN (standard input). Which is why piping a file through cat into a utility like grep is pointless since grep can work on files directly.

Say you want to search for the word “dog” in a file called “my_file”. Instead of cat my_file | grep "dog", you can just type grep "dog" my_file.

Similarly, Vim has operators, which are designed to work on text objects. Which is why there’s rarely a need to visually select text, unless it’s a very irregular region. For most use cases, like copying a paragraph, you can just give the operator the text object directly.

For example, say you want to delete a paragraph. Rather than typing vap (visual around paragraph) and then d (delete), you can just type dap.

There are use cases for both “anti-patterns”. In a long pipeline, typing cat at the beginning can make it clearer to read, and selecting irregular regions or desiring visual feedback on certain operations benefits from visual mode.

But a lot of the time, there’s no reason to use them.

Related Posts

Handy command line benchmarking tool

Stan Rogers

Ultimate Hot Couch Guy

Quote on Java Generics

The Programmer Tendency

Figure out undocumented JSON with gron

Mental Model of Dental Hygiene

Book Review: Swastika Night

Is there a name for this construction?

Fun with negation and idioms