Saya menggunakan spacemacs
tetapi mungkin pengetahuan emacs yang diperlukan di sini.
Saya memiliki file JSON dengan satu baris panjang, misalkan JSON ini dari json.org/example:
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
Saya ingin emacs untuk mengaktifkan kembali ini, yang berarti bagi saya tidak mengubah karakter garis paling kiri ke tingkat lekukan yang tepat, tetapi memecah garis dalam beberapa baris.
Jika saya menggunakan spacemacs/indent-region-or-buffer
( SPC j =
) maka teks tidak berubah sama sekali.
Bagaimana saya bisa meminta dari emacs untuk benar-benar memutus garis panjang ini dan reindent untuk mendapatkan sesuatu seperti ini:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Saya tidak tertarik dengan jawaban khusus JSON, misalnya saya percaya bahwa IntelliJ melakukan itu untuk bahasa apa pun yang didukungnya (java, json ...). Saya pikir itu dapat dicapai karena emacs bahasa apa pun memiliki mode utama, atau katakanlah yang paling populer.
EDIT Saya menemukan M-x json-reformat-region
bahwa spacemacs
kapal dengan dan bekerja, tapi ya, saya ingin itu untuk bahasa apa pun dan dengan selalu pintasan yang sama, berdasarkan mode utama ...
EDIT2 Ok jadi kesimpulan saya adalah bahwa ini diterapkan untuk berbagai bahasa, setidaknya JSON & lisp, mungkin orang lain, dan itu akan lebih mudah untuk lebih banyak lagi (XML / XHTML, go yang telah go-fmt dan juga menggunakan dentang). Namun tidak ada nama fungsi generik yang akan melakukannya untuk semua bahasa. Ada ruang di sini untuk mengimplementasikannya dalam spacemacs
lapisan untuk berbagai bahasa ... Saya tidak menemukan implementasi X / HTML, yang sedikit mengejutkan saya.
web-beautiful.el
. Ini adalah yang terbaik yang saya temukan, tetapi itu tergantung pada node.js.