c++ - 使用 Vim 编译和运行 C++ 程序

标签 c++ vim

<分区>

我知道这听起来很愚蠢,但我已经在 Vim 编辑器上编写了 C++ 代码,但我终究无法弄清楚如何编译和运行它。我知道这非常简单,但我醒得太久了 感谢您的帮助!

最佳答案

:make确实是要走的路 Jon said .

在安装了 gnumake 的类 Linux(它也适用于 cygwin,但不适用于 windows 上的 mingw)系统上,如果您的项目中没有 Makefile,并且您的项目只有一个文件,只需输入 :make .这就足够了(您可以使用 $CXXFLAGS$CFLAGS$LDFLAGS 来调整编译选项)。然后运行程序,输入 :!./%< (IIRC)。

如果您的项目由多个文件组成,那么您将需要一个 Makefile 来利用 :make .

如果您使用 CMake 管理您的项目,并且如果您在源代码树之外的一个目录(或多个 -> debug、release 等)中编译您的项目,那么集成将需要一个插件。 AFAIK,我是唯一提出这样一个插件的人:BuildToolsWrapper集成了 CMake 的管理(构建目录的选择,可以在调试、发布或任何构建目录之间进行选择)。它必须与 local_vimrc 之一结合使用插件。

在所有情况下,使用 :!g++ -o %< % 从 Vim 内部(或外部)直接调用编译器或者我们 15 年前在 vi 上做过的任何事情。 Vim 有一个很棒的特性:它可以集成(是的,就像在 IDE 中一样)编译器。参见 :h quickfix .直接从编辑器中在错误之间导航比用我们的眼睛提取一个错误行、将行号输入编辑器、返回 shell 以查看究竟被拒绝的内容要容易得多,...在 C 中可能就足够了,但是在 C++ 中,当我们“试图调用一个不存在的重载”时,我们不能这样工作(在编辑器和 shell 之间来回切换)。

关于c++ - 使用 Vim 编译和运行 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474662/

相关文章:

c++ - 未调用移动构造函数

c++ - C++ 中的 "template <typename From, typename Tag> struct Alias;"是什么?

C++:在 Clang 中未删除的动态分配变量

vim - 在 vimdiff 中将差异标记为 ok

c++ - 指针迭代器的取消引用适配器

c++ - 未实现的 Tesseract 函数

python - 如何在 Vim 中从 ":!python"退出?

ruby - Nix:用 Ruby 编译 Vim

vim - 我的 .vimrc 文件在哪里?

ios - 从项目的 View Controller 中删除所有 -viewDidUnload 的方法