SpaceVim
A modular Vim/Neovim configuration
Home | About | Quick start guide | Documentation | Development | Community | Sponsors | 中文
This is a general guide for using SpaceVim as a C/C++ IDE, including layer configuration and usage. Each of the following sections will be covered:
To add C/C++ language support in SpaceVim, you need to enable the lang#c
layer. Press SPC f v d
to open
SpaceVim configuration file, and add following configuration:
[[layers]]
name = "lang#c"
for more info, you can read the lang#c layer documentation.
The basic syntax highlighting is based on regular expression, If you want clang
based
syntax highlighting. Enable enable_clang_syntax_highlight
layer option:
[[layers]]
name = 'lang#c'
enable_clang_syntax_highlight = true
This option requires +python
or +python3
enabled and libclang
has been installed.
By default the autocomplete layer has been enabled, so after loading lang#c
layer, the code completion
for C/C++ language should works well.
If the autocomplete_method
is deoplete
, then Shougo/deoplete-clangx
will be loaded in lang#c
layer.
If the autocomplete_method
is asyncomplete
, then wsdjeg/asyncomplete-clang.vim
will be loaded.
If the autocomplete_method
is neocomplete
, Then Rip-Rip/clang_complete
will be loaded.
You can check the value of autocomplete_method
via :SPSet autocomplete_method
.
To manage alternate files for a project, you may need to create a .project_alt.json
file in the root of your
project.
For example, add the following content into the .project_alt.json
file:
{
"*.c": {"alternate": "{}.h"},
"*.h": {"alternate": "{}.c"}
}
With this configuration, you can jump between alternate files via command :A
The default code running key binding is SPC l r
. It will compile and run current file asynchronously.
And the stdout will be shown on a runner buffer.
The default runner compile option is defineded in clang_std
and clang_flag
option.
If you want to use c11
, you can change clang_std
option to:
[[layers]]
name = "lang#c"
[layers.clang_std]
cpp = "c11"
You can also create a .clang
file in the root directory of you project. Within this
file, all compile option should be defineded in it. for example:
-I/home/test
-I/user/std/include
The checker layer provides syntax checking for many programming languages.
Including C/C++, and the default plugin is neomake. The default
lint for C/C++ is gcc
/g++
. These commands also read configuration in .clang
file.
In order to be able to format C/C++ files, you need to install uncrustify
, clangformat
or astyle
.
The key binding SPC b f
is defineded in format layer which is loaded by default.
In this layer, the default format engine is neoformat
.
Start a igcc
inferior REPL process with SPC l s i
. After the REPL process being started, you can
send code to inferior process, all key bindings prefix with SPC l s
, including sending line, sending selection or even
send whole buffer.
Powered by Jekyll