Sejak saya mulai menggunakan Flyspell, selalu terasa menyakitkan untuk digunakan. Saya jarang memeriksa seluruh buffer untuk kata-kata yang salah eja, biasanya saya mengetik dan begitu saya melihat kata yang digarisbawahi saya ingin memperbaikinya secara instan dan terus mengetik. Ini hanya karena saya takut lupa untuk memperbaiki kata nanti dan karena ketika saya mulai memeriksa buffer secara menyeluruh, iSpell memberikan terlalu banyak false positive. Jadi, hampir selalu saya memperbaiki kata-kata sesegera mungkin saat saya mengetik.
Berikut ini adalah fungsi bawaan yang saya ketahui dan alasan mengapa mereka tidak efisien (bagi saya):
flyspell-correct-word
- Ini terikat ke klik mouse. Lupakan saja, aku tidak akan menggunakan mouse.flyspell-correct-word-before-point
- Saya menggunakannya untuk beberapa waktu. Ini memiliki dua kelemahan:Secara default ini menunjukkan menu GUI yang sulit dioperasikan tanpa mouse dan itu benar-benar rumit ketika Anda memiliki daftar koreksi dengan lebih dari 10 item.
Itu tidak bekerja untuk kata jauh sebelum poin. Saya mengetik cepat dan ketika saya menemukan kata yang salah eja, saya biasanya memiliki satu atau dua kata antara kata dan titik yang salah eja. Saya perlu pindah titik, kata yang benar, kembali. Oh
flyspell-auto-correct-word
- Lihat poin 2 ↑ ditambah itu tidak berfungsi dengan baik ketika Anda memiliki daftar panjang penyelesaian (karena bersepeda).
T: Bagaimana saya bisa menggunakan Flyspell secara efisien, dengan keyboard, dapat memilih dari daftar penyelesaian tanpa bersepeda, dan dengan kemampuan untuk mengoreksi kata-kata yang bahkan lebih jauh?
Jawaban yang dapat diterima termasuk paket yang membantu menavigasi ke kata yang salah eja sebelumnya, memperbaikinya dan kembali atau sesuatu seperti itu serta potongan kecil, mungkin dari file konfigurasi Anda sendiri, karena saya percaya orang lain menemukan cara mereka untuk berinteraksi secara efisien dengan Flyspell.
ttwo
misalnya, meskipun menu saya, saya melihat 26 usulan koreksi!ttwo
koreksi otomatis ketwo
dalam percobaan pertama. Tapi aku tahu maksudmu. Dari pengalaman praktis, dalam sekitar 90% kasus, percobaan pertama mendapatkan kata yang tepat, mungkin 9% sisanya membutuhkan 2-3 percobaan dan 1% terakhir adalah ketika flyspell tidak mengetahuinya dan saya harus pergi melalui 5+ percobaan (atau saya memperbaikinya secara manual).C-;
secara default, dan Anda dapat menyesuaikanflyspell-auto-correct-binding
untuk mengikatnya ke kunci lain di peta flyspell. (Atau ikat saja dengan cara biasa, tentu saja.)Saya cukup yakin orang lain akan datang dengan solusi berbeda yang akan berguna bagi pembaca masa depan. Namun, inilah cara saya saat ini menangani ini.
Saya pikir
flyspell-correct-word-before-point
ini adalah tempat yang baik untuk memulai, karena paling tidak dapat dipanggil dengan penekanan tombol dan menampilkan menu koreksi yang mungkin. Untuk memperbaiki menu saya sudah menulis paket Ace Popup Menu yang menggunakan Avy sebagai backend. Ini menggantikan menu popup GUI yangflyspell-correct-word-before-point
menggunakan (fungsi ini disebutx-popup-menu
) dengan menu popup tekstual yang menyajikan item menu berlabel: satu atau dua stroke tombol dan Anda selesai.Untuk mengatasi masalah kedua (ketidakmampuan untuk memperbaiki kata "di kejauhan"), saya telah menulis bantuan ini:
Ini sepertinya berhasil.
sumber
Dengan helm-flyspell Anda dapat memilih dari daftar koreksi secara efisien. Saya menggunakan kode berikut untuk melompat ke kesalahan dan memperbaikinya dengan itu, ini menyimpan posisi titik ke
mark-ring
sehingga Anda dapat melompat kembali ke posisi di mana Anda memulai atau memperbaiki kata-kata sebelumnya:sumber