Saya mencari mode minor untuk membuat paragraf terisi setiap saat saat mengetik (mirip dengan apa yang aggressive-indent-mode
dilakukan lekukan). Itu juga harus cukup pintar untuk hanya mengisi komentar (dan mungkin string tergantung pada bahasa).
Beberapa hal yang saya coba adalah:
auto-fill-mode
secara otomatis mengisi saat Anda mengetik paragraf baru tetapi tidak mengisi ulang saat Anda mengedit paragraf.refill-mode
tidak secara konstan mengisi ulang paragraf tetapi mencoba untuk membungkus kode menjadi paragraf serta komentar.Saya mencoba menambahkan
fill-paragraph
keafter-change-functions
pengait tetapi mengacaukan membatalkan dan banyak hal lainnya (ini mungkin semua diperbaiki tetapi akan membutuhkan usaha).
Ada ide yang lebih baik?
hooks
fill-paragraph
comment
dshepherd
sumber
sumber
org-mode
, tetapi Anda dapat mencoba rebox2Jawaban:
Saya datang dengan cara minimal menerapkan fungsi ini: cukup ikat spasi untuk juga menelepon
(fill-paragraph)
!Ada beberapa peringatan yang saya temukan sejauh ini:
elisp-mode
(mungkin orang lain) melakukan beberapa kode mewah yang mengisi saat Anda meneleponfill-paragraph
, ini mungkin atau mungkin bukan yang Anda inginkan. Mungkin bisa diperbaiki dengan menguji apakah titik ada di komentar atau docstring tapi saya tidak yakin bagaimana melakukannya.Anda kadang-kadang tidak dapat dengan mudah memasukkan beberapa spasi (karena
fill-paragraph
membunuh semua spasi tambahan). Karena space-bar sekarang bertindak sepertijust-one-space
itu mungkin ok untuk menggantikan yang mengikat(insert " ")
.Saya membuat mode minor yang berisi fungsi ini, tersedia di github atau dalam paket melpa
aggressive-fill-paragraph
.sumber
aggressive-fill-paragraph
jauh lebih tidak agresif daripadarefill-mode
, yang agresif sampai menjadi sangat tidak berguna (karena Anda bahkan tidak dapat mengutip seseorang dengan>
tanpa mengatur ulang barang-barang mode: bahkan jika Anda menggunakan regexps untuk penggantian) .Jika Anda suka bagaimana mode isi ulang berperilaku (saya tidak: p) tetapi tidak ketika berperilaku, seharusnya relatif mudah untuk memperbaikinya dengan menghambatnya setiap kali Anda tidak berada dalam kondisi yang tepat
Sebagai contoh
Pada dasarnya itu menghapus fungsi yang memicu isi ulang dari
after-change-functions
dan menggantikannya dengan yang akan memeriksa apakah kita dalam komentar sebelum melakukan hal yang persis sama.sumber
refill-mode
:) Masalahnya adalahrefill-mode
menggunakanfill-region
bukanfill-paragraph
, sehingga kehilangan kemampuan untuk menghormatifill-paragraph-function
dan membuat hal-hal yang berpotensi berantakan