2

参考:rust-cpp

emacs/spacemacs 可以在主模式下支持嵌套模式吗?我习惯了 vim 和 emacs/spacemacs 的新手。

4

1 回答 1

7

一般信息

您可以访问列出一些解决方案的wiki,以同时运行几种主要模式:

在您的情况下,您需要运行 2 种主要模式才能在同一缓冲区中识别 C++ 和 Rust:

一个实际的例子mmm-mode

我想你的 Rust 环境已经在你的 Emacs 中配置好了。以下将c++-mode在 Rust 主要模式运行时添加。在您的 Emacs 配置文件中,添加以下代码段:

(require 'mmm-mode)
(setq mmm-global-mode 'maybe)

(mmm-add-classes
 '((rust-cpp ; Name of the mmm class
    :submode c++-mode ; Additional major mode, here it is C++
    :front "^cpp! {[\n\r]+" ; Start tag for c++-mode
    :back "^}$"))) ; Stop tag for c++-mode

(mmm-add-mode-ext-class 'rust-mode nil 'rust-cpp)

在您的 Rust 代码中,c++-mode将在以下模式出现时被激活:

cpp! {
    // your C++ code...
}

我会让你微调正则表达式,因为我不知道rust-cpp混合 Rust 和 C++ 时的规则。

于 2016-12-11T11:03:37.767 回答