1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 02:10:05 +08:00
SpaceVim/docs/_posts/2019-05-10-use-vim-as-a-c-cpp-ide.md
2019-06-01 13:30:10 +08:00

2.5 KiB

title categories image excerpt type comments commentsID
Use Vim as a C/C++ IDE
tutorials
blog
https://user-images.githubusercontent.com/13142418/58743787-db2bee80-846a-11e9-9b19-17202ac542c9.png A general guide for using SpaceVim as C/C++ IDE, including layer configuration, requiems installation and usage. BlogPosting true Use Vim as a C/C++ IDE

Blogs >> Use Vim as a C/C++ IDE

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:

Enable language layer

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.

code completion

By default the autocomplete layer has been enabled, so after loading lang#c layer, the code completion for C/C++ language should works well.

alternate file jumping

To manage the alternate file for a project, you may need to create a .project_alt.json file in the root of your project.

for exmaple, add following content into the .project_alt.json file:

{
  "*.c": {"alternate": "{}.h"},
  "*.h": {"alternate": "{}.c"}
}

with this configuration, you can jump between the alternate file via command :A

code running

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.

c-cpp-runner

code format

The format layer use neoformat as default tool to format code, it will format current file. And the default key binding is SPC b f.

[[layers]]
  name = "format"

REPL support

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.

c_repl