Lipat kode di Emacs
Terkadang saya ingin melipat blok teks. Di Vim Anda dapat melipat dengan mudah tanpa bulu halus. Tanpa menambahkan karakter khusus seperti "spidol" atau regex spesifik seperti {{{
. Saya ingin memilih daerah dan melipatnya, tanpa mengacaukan strukturnya.
Saat melihat-lihat, sepertinya sudah ada pertanyaan tentang kode lipat di Emacs. Seseorang berkata bahwa "tidak ada solusi yang sempurna". Misalnya, saya membuat klip lipat kode sederhana di Vim:
Vim lipat polos
+ Cukup sederhana, pilih wilayah dan lipat.
+ Ini gigih. Ketika Anda membunuh buffer / tutup Vim. Dan buka kembali file tersebut, lipatannya masih ada.
+ Anda mendapatkan bilah sorot, untuk dengan mudah melihat apa yang dilipat.
Ada banyak konfigurasi lipat lainnya untuk Vim. Saya senang dengan Emacs, tetapi ini adalah satu hal yang saya rindukan. Alternatif lain yang saya coba, misalnya HideShow:
Sembunyikan tampilan
Alternatif jahat dengan hide-show minor mode
. Saya merasa tidak dapat digunakan:
- Saya tidak dapat memilih wilayah dan melipatnya. Itu terlipat pada blok kode.
- Tidak ada bar higlihgting atau sesuatu, untuk menghadiri Anda itu dilipat Anda bisa dengan mudah melewatkannya.
- Tidak gigih. Jika Anda membuka kembali file, lipatan hilang.
Ada paket lain, Lipat ini :
Lipat ini
- Ini alternatif yang cantik. Namun, itu mengacaukan lekukan, karena teks di bawah flip ditempatkan di sebelah flip ... (?).
- Ini hanya dapat memilih wilayah secara visual dan melipatnya. Tapi itu mematahkan indendasi, sehingga ikhtisar menjadi kacau. Sangat tidak berguna.
- Tidak ada bar higlihgting atau sesuatu, untuk menghadiri Anda itu dilipat. Anda bisa dengan mudah melewatkannya.
apa masalahnya?
Saya ingin meniru bagaimana Vim melipat. Tetapi ketika saya mencari di sekitar, sepertinya sangat sulit untuk melakukannya di Emacs. Jadi saya ingin tahu apakah ada sesuatu dalam emacs atau arsitekturnya yang membuatnya sulit untuk meniru ini? Apa batasannya?
sumber
Jawaban:
Cobalah
vimish-fold
.fitur
termasuk baterai: aktifkan mode minor, ikat beberapa perintah dan semuanya hanya akan berfungsi;
ini bekerja pada wilayah yang Anda pilih;
gigih: ketika Anda menutup file, lipatan Anda tidak hilang;
selain persisten, skalanya juga bagus, Anda dapat mengerjakan ratusan file dengan banyak lipatan tanpa efek buruk;
sudah jelas bagian teks mana yang dilipat;
itu tidak merusak lekukan atau sesuatu;
itu bisa melipat lipatan hanya dilipat (oh, saya);
untuk penggemar
avy
paket: Anda dapat menggunakanavy
untuk melipat teks dengan sedikit stroke kunci!Pemakaian
Buat pengikatan untuk beberapa / semua fungsi ini:
vimish-fold
- lipatan dasar wilayah yang dipilih;vimish-fold-unfold
- Anda tidak benar-benar perlu untuk mengikat ini, cukup gunakan C-gketika titik ditempatkan pada header yang mewakili teks yang dilipat;vimish-fold-unfold-all
- namun demikian ini mungkin berguna;vimish-fold-refold
- ya, Anda bisa melipatnya kembali;vimish-fold-avy
- gunakanavy
untuk melipat teks Anda!Anda dapat mengubah
vimish-fold-mode
secara selektif untuk mode di mana Anda ingin memiliki lipatan persisten, atau cukup aktifkan di mana saja:sumber
menu v f
→vimish-fold
,menu v a
→vimish-fold-avy
,menu v u
→vimish-fold-unfold-all
,menu v v
→vimish-fold-refold
. Kebanyakan keybinds saya seperti ini, ini adalah konfigurasi saya .