Vim: Plugins written in Perl
Vim has it's own internal scripting language called Vimscript, which is complicated and only appropriate in Vim. Most versions of Vim ship with Perl support. I taught myself how to write a simple Vim script in Perl. The following will define a Vim function named CommaToggle, that calls a perl function named comma_toggle. This will toggle spaces after commas on/off.
function! CommaToggle()
perl << EOF
# Get the current line number, and line text
my ($line_num,$column) = $curwin->Cursor();
my $line = $curbuf->Get($line_num);
if ($line =~ /,/) {
my $fixed = comma_toggle($line);
$curbuf->Set($line_num,$fixed);
}
sub comma_toggle {
my $line = shift();
if ($line =~ /, /) {
# Remove spaces after commas
$line =~ s/, /,/g;
} else {
# Add a space after commas
$line =~ s/,/, /g;
}
return $line;
}
EOF
endfunction
Other Vim/Perl commands are available from the documentation. Then you can map a key combination to call that function:
nnoremap <Leader>, :call CommaToggle()<cr>