Saya berurusan dengan file json dengan beberapa blok berulang dengan hanya satu nilai bidang (integer) berubah - pada kenyataannya, setiap nilai yang diubah hanya nilai yang sesuai sebelumnya bertambah. Untuk membuat file seperti itu mudah dibaca, saya ingin dapat melipat seluruh rangkaian blok berulang ini menjadi hanya satu blok dengan beberapa indikasi berapa kisaran nilai yang berubah di seluruh blok ini. Mencari metode kode lipat di emacs, saya menemukan hs-minor-mode
dan outline-mode
. Namun, saya tidak melihat bagaimana cara beralih dari fungsi yang mereka berikan ke yang saya inginkan. Bisakah seseorang memberikan gambaran kasar tentang bagaimana saya bisa mencapai ini?
EDIT: Contoh dari apa yang saya coba lakukan:
Diberikan file json yang terlihat seperti ini:
{
"SomeArray": [
{
"ChangingField": 1,
"ConstantField" : "X"
},
{
"ChangingField": 2,
"ConstantField" : "X"
},
{
"ChangingField": 3,
"ConstantField" : "X"
},
{
"ChangingField": 4,
"ConstantField" : "X"
},
{
"ChangingField": 5,
"ConstantField" : "X"
}
]
}
Saya ingin ditampilkan seperti ini:
{
"SomeArray": [
{
"ChangingField": 1...5,
"ConstantField" : "X"
}
]
}
Permintaan maaf untuk pertanyaan yang sangat terbuka.
sumber
Jawaban:
Ada lebih banyak opsi lipat untuk Emacs: http://wikemacs.org/wiki/Folding#Yafolding dan Yafolding sepertinya yang terbaik untuk casing Anda karena didasarkan pada lekukan. Ini juga termasuk antarmuka yang bagus à-la Magit untuk menemukan perintah.
Namun, itu tidak sepenuhnya menjawab pertanyaan Anda karena tidak akan menampilkan rentang bidang di luar kotak.
Yafolding dalam MELPA:
sumber
Gunakan emacs '
hideshow
. Anda dapat menjaga kursor Anda di mana saja & untuk menyembunyikan level blok 'n' di bawahnya, gunakan perintahDi sini, n adalah argumen awalan numerik yang diset dengan menekan
Baca lebih lanjut tentang hsmode di sini, hs-mode . Lebih lanjut tentang argumen awalan di sini, awalan args mode hs tidak berfungsi pada mode Default. Anda harus memiliki mode js2 (atau) mode js agar bisa berfungsi.
sumber