EmacsでVueファイルを編集するときの設定
Emacsでvueファイルの編集をするときの設定です。
ありがたいことにVueを書く機会が増えてきたので、ちゃんと設定しておこうかなと。
vue-mode
という拡張を使ってみたけど、全然シンタックスハイライトしなかったので諦めました。
vue-modeはどうやら mmm-mode
という拡張を使用しているとのことだったので、「じゃあmmm-modeとやらで自分で設定すれば良いんじゃね?」と思い設定したわけです。
Vueファイル編集するときの設定
結論から。
色々と問題は有りますが、下記のような設定に落ち着きました。
;; ************************************************************************
;; mmm-mode
;; ************************************************************************
(use-package mmm-mode
:ensure t
:config
(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 2)
(set-face-background 'mmm-default-submode-face "gray13")
(mmm-add-classes
'((vue-embeded-slim-mode
:submode slim-mode
:front "^<template.*lang=\"pug\">\n"
:back "^</template>")
(vue-embeded-web-mode
:submode web-mode
:front "^<template>\n"
:back "^</template>\n")
(vue-embeded-js-mode
:submode js-mode
:front "^<script>\n"
:back "^</script>")
(vue-embeded-scss-mode
:submode scss-mode
:front "^<style.*lang=\"scss\">\n"
:back "^</style>")))
(mmm-add-mode-ext-class nil "\\.vue\\'" 'vue-embeded-slim-mode)
(mmm-add-mode-ext-class nil "\\.vue\\'" 'vue-embeded-web-mode)
(mmm-add-mode-ext-class nil "\\.vue\\'" 'vue-embeded-js-mode)
(mmm-add-mode-ext-class nil "\\.vue\\'" 'vue-embeded-scss-mode))
設定の解説
サブモードが適用されている範囲の背景色を設定する
背景色を gray13
に設定しています。
(set-face-background 'mmm-default-submode-face "gray13")
補足)
色指定は #xxxxxx
形式でも良いですが、 M-x list-colors-display
でも確認できます。
サブモードの設定をする
(vue-embeded-slim-mode ; サブモード名
:submode slim-mode ; 適用させるモード名
:front "^<template.*lang=\"pug\">\n" ; どこから
:back "^</template>") ; どこまで
front と back は正規表現で指定します。
正規表現は M-x regexp-builder
でtry and errorしながら設定しました。
Vueの場合は下記のようなケースがあるので、 ^
を指定してあげないとだめです。
(私のVueの書き方がおかしいのかもしれない気がしてきた。)
<template>
<div id="hoge">
<h1>Hoge</h1>
<template>
<h2>fuga</h2>
</template>
</div>
</template>
mmm-modeについて
1つのメジャーモードの中で複数のメジャーモードを適用させることができるパッケージです。
例えば、 hoge.rb
ファイルを開いたときにメジャーモードとして ruby-mode
が適用される設定の場合、コードのとある箇所は js-mode
を適用する、みたいなことができるようになります。(そんなことしたいシチュエーションは無いと思うが...)
cf. https://github.com/purcell/mmm-mode
最後に
- 予測変換が動かないぽい(company)
- 別に背景色は変えなくても良いかな
- たまにインデントが変な感じになる(特にslim-mode)
- 都度
web-mode-reload
しないといけなさそう- 案1) saveのときにhookさせるか
- Land of Lispって本読み中だよ〜
VSCode便利すぎない?
参考
Author And Source
この問題について(EmacsでVueファイルを編集するときの設定), 我々は、より多くの情報をここで見つけました https://qiita.com/pagu_o28/items/ff4034d350077b583820著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .