An extensible & universal comment plugin that also handles embedded filetypes
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Version 3.07@1 Oct 4, 2015


This is a mirror of

:TComment works like a toggle, i.e., it will comment out text that 
contains uncommented lines, and it will uncomment already 
commented text (i.e. text that contains no uncommented lines).

If the file-type is properly defined, :TComment will figure out which 
comment string to use based on the values of &commentstring or &comments. 
For some filetypes, the comment definition is explicitly defined. You can 
|tcomment#DefineType()| to add your own definitions.

TComment knows how to deal with embedded code of a different filetype 
than the main filetype, e.g., ruby/python/perl regions in vim scripts, HTML or 
JavaScript in php code etc.

As operator (the prefix can be customized via g:tcommentMapLeaderOp1 
and g:tcommentMapLeaderOp2):

    gc{motion}   :: Toggle comments (for small comments within one line 
                    the &filetype_inline style will be used, if 
    gcc          :: Toggle comment for the current line
    gC{motion}   :: Comment region
    gCc          :: Comment the current line

Primary key maps:

    <c-_><c-_>   :: :TComment
    <c-_><space> :: :TComment <QUERY COMMENT-BEGIN ?COMMENT-END>
    <c-_>b       :: :TCommentBlock
    <c-_>a       :: :TCommentAs <QUERY COMMENT TYPE>
    <c-_>n       :: :TCommentAs &filetype <QUERY COUNT>
    <c-_>s       :: :TCommentAs &filetype_<QUERY COMMENT SUBTYPE>
    <c-_>i       :: :TCommentInline
    <c-_>r       :: :TCommentRight
    <c-_>p       :: Comment the current inner paragraph

There is also a secondary set of key maps with <Leader>_ as leader (more 
preferable on terminals).

The full documentation is available here:


Also available via git