When at the command line (CLI), productivity means keeping your hands on the keyboard. But once your fingers have memorized all the commands, flags, static arguments, and common usage patterns — can you still get faster?
Yes.
Programmable completion is a shell facility that allows for customizing the command line in real-time as it is typed. Also referred to as “TAB Completion”, many shells in both Linux and Windows have a default implementation that support completion on filenames and directories. If you’re lucky, you’ll even get environment variables and functions.
Let’s move to software configuration management (SCM). Various branch and label-based SCM systems like CVS have basic tab completion for commands and flags. Thats a good start. But an agile user needs a context-sensitive, custom-data completion facility. What you ~really~ want is completion on your own data — branch names, labels, usernames, etc.
Users of stream-based AccuRev are in luck.
Do you use AccuRev on Linux? If so, download the latest GNU Bash (2.05+) completion for AccuRev 4.5.x. Here is the README. You’ll never have to memorize flags or type stream names again.
Coming in Part 2 — Support for Windows users.
/happy tabbing/ – dave