参考:rust-cpp
emacs/spacemacs 可以在主模式下支持嵌套模式吗?我习惯了 vim 和 emacs/spacemacs 的新手。
您可以访问列出一些解决方案的wiki,以同时运行几种主要模式:
在您的情况下,您需要运行 2 种主要模式才能在同一缓冲区中识别 C++ 和 Rust:
c++-mode
(默认可用)rust-mode
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++ 时的规则。