私は使用してspacemacs
いますが、おそらくここで必要なのはemacsの知識です。
単一の長い行を持つJSONファイルがあります。json.org/ exampleからのこのJSONを例にとります。
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
emacsでこれを再インデントしたいと思います。つまり、行の左端の文字を適切なインデントレベルに変更せずに、行をいくつかの行に分割します。
spacemacs/indent-region-or-buffer
(SPC j =
)を使用すると、テキストはまったく変更されません。
emacsにこの長い行を実際に中断して、このような何かを得るために再インデントするように依頼するにはどうすればよいでしょうか。
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
JSON固有の回答には興味がありません。たとえば、intelliJは、サポートしているすべての言語(java、json ...)に対してそれを行うと考えています。どんな言語のemacsにもメジャーモードがある、または最も人気のあるものについて言えば、それは達成可能だと思います。
編集私はM-x json-reformat-region
、それがspacemacs
出荷されて動作することを発見しましたが、はい、すべての言語で、メジャーモードに基づいて常に同じショートカットでそれが欲しいです...
EDIT2わかりましたので、私の結論は、それはさまざまな言語、少なくともJSONとLisp、おそらく他の言語に実装されており、さらに簡単になります(XML / XHTML、go-fmtを持ち、clangも使用しています)。ただし、すべての言語でそれを行う汎用関数名はありません。ここにspacemacs
は、さまざまな言語のレイヤーで実装するスペースがあります...しかし、X / HTMLの実装は見つかりませんでした。
web-beautiful.el
。これは私が見つけた最高のものですが、node.jsに依存します。