Extended Vim syntax highlighting for C and C++ (C++11/14/17/20/23)
Keyword and regex-based syntax highlighting for C and C++11/14/17/20/23 in Vim.
The syntax files provide highlighting of:
Code snippet from cppreference (left: default syntax file, right: this plugin).
Both syntax files are based on vim-cpp-enhanced-highlight with the following modifications:
virtual
, override
, final
, inline
, explicit
and
export
are standard C++ statements and not types and are therefore
highlighted using the highlight group Statement
." Disable function highlighting (affects both C and C++ files)
let g:cpp_function_highlight = 0
" Enable highlighting of C++11 attributes
let g:cpp_attributes_highlight = 1
" Highlight struct/class member variables (affects both C and C++ files)
let g:cpp_member_highlight = 1
" Put all standard C and C++ keywords under Vim's highlight group 'Statement'
" (affects both C and C++ files)
let g:cpp_simple_highlight = 1
The last option changes the highlighting of the following keywords:
static
, register
, auto
, volatile
, extern
, const
, inline
,
__attribute__
, restrict
, alignas
, alignof
, static_assert
,
noreturn
, thread_local
, struct
, union
, enum
, case
, default
class
, typename
, template
, namespace
, concept
, mutable
,
constexpr
decltype
, consteval
, constinit
$ cd ~/.vim/pack/git-plugins/start
$ git clone --depth=1 https://github.com/bfrg/vim-cpp-modern
Note: The directory name git-plugins
is arbitrary, you can pick any other
name. For more details see :help packages
.
Distributed under the same terms as Vim itself. See :help license
.