2

参考:rust-cpp

emacs/spacemacs はメジャーモードでネストモードをサポートできますか? 私はvimに慣れていて、emacs/spacemacsは初めてです。

4

1 に答える 1

7

一般情報

一度にいくつかの主要なモードを実行するためのいくつかのソリューションを一覧表示するwikiにアクセスできます。

あなたの場合、同じバッファで C++ と Rust を認識するために、2 つのメジャー モードを実行する必要があります。

  • 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-cppRustとC++を混在させるときのルールがわからないので、正規表現の微調整をお任せします。

于 2016-12-11T11:03:37.767 に答える