Hack #5. Autocomplete Perl Identifiers in Vim
Why type a full identifier if your editor can do it for you?
Good variable and function names are a great boon to productivity and maintainability, but brevity and clarity are often at odds. Instead of wearing out your keys, fingertips, and memory, consider making your text editor do the typing for you.
The Hack
If you use Vim, you have access to a handy autocompletion mechanism. In insert mode, type one or more letters of an identifier, then hit CTRL-N. The editor will complete your identifier using the first identifier in the same file that starts with the same letter(s). Hitting CTRL-N again gives you the second matching identifier, and so on.
This can be a real timesaver if you use long variable or subroutine names. As long as you've already typed an identifier once in a file, you can autocomplete it ever after, just by typing the first few letters and then CTRL-Ning to the right name:
sub find_the_factorial_of
{
my ($the_number_whose_factorial_I_want) = @_;
return 1 if $the_n<CTRL-N> <= 1;
return $the_n<CTRL-N> * find<CTRL-N>($the_n<CTRL-N> - 1);
}Unfortunately, Vim's idea of an identifier (in Vim-speak, a "keyword") isn't as broad as Perl's. Specifically, the editor doesn't recognize the colon character as a valid part of an identifier, which is annoying if you happen to like multipart class names, or qualified package variables.
However, it's easy to teach Vim that those intervening double-colons are valid parts of the identifiers. ...