I'm switching from TextMate to MacVim. Which should I use and why? tComment or The NERD Commenter
I like style of tComment more than NERDCommenter, at least in Perl code.
Original:
my $foo;
if ($foo) {
$foo = 1;
$bar = 1;
}
return $bar;
tComment:
my $foo;
# if ($foo) {
# $foo = 1;
# $bar = 1;
# }
return $bar;
NERDCommenter:
my $foo;
#if ($foo) {
#$foo = 1;
#$bar = 1;
#}
return $bar;
I also like default mappings of tComment that feel more native for Vim. The basic are:
gc{motion} :: Toggle comments
gcc :: Toggle comment for the current line
gC{motion} :: Comment region
gCc :: Comment the current line
I have added a few more mappings in vimrc and now I'm fully happy:
" tComment extra mappings:
" yank visual before toggle comment
vmap gy ygvgc
" yank and past visual before toggle comment
vmap gyy ygvgc'>gp'.
" yank line before toggle comment
nmap gy yygcc
" yank and paste line before toggle comment and remember position
" it works both in normal and insert mode
" Use :t-1 instead of yyP to preserve registers
nmap gyy mz:t-1<cr>gCc`zmz
imap gyy <esc>:t-1<cr>gCcgi
And one more mapping for consistency: gcc toggle comment line but gc toggle comment visual, so let's make it more consistent:
vmap gcc gc