С того момента, как я начал использовать Flyspell, им всегда было больно пользоваться. Я редко проверяю весь буфер на наличие слов с ошибками, обычно я печатаю и, как только я вижу подчеркнутое слово, я хочу немедленно исправить его и продолжить ввод. Это просто потому, что я боюсь забыть исправить слово позже и потому что, когда я начинаю всестороннюю проверку буфера, iSpell выдает слишком много ложных срабатываний. Таким образом, почти всегда я исправляю слова как можно скорее, пока я печатаю.
Вот встроенные функции, о которых я знаю, и причины, по которым они неэффективны (для меня):
flyspell-correct-word
- Это связано с щелчком мыши. Забудь об этом, я не собираюсь использовать мышь.flyspell-correct-word-before-point
- Я использовал это в течение некоторого времени. У него есть два недостатка:По умолчанию в нем отображается меню GUI, с которым трудно работать без мыши, и оно действительно громоздко, когда у вас есть список исправлений с более чем 10 элементами.
Это не работает на слово задолго до момента. Я печатаю быстро, и когда я замечаю слово с ошибкой, у меня обычно есть одно или два слова между словом с ошибкой и точкой. Мне нужно переместить точку, исправить слово, вернуться назад. Ой.
flyspell-auto-correct-word
- См. Пункт 2, плюс он не работает, если у вас длинный список завершений (из-за цикличности).
В: Как я могу эффективно использовать Flyspell, используя клавиатуру, имея возможность выбирать из списка завершений без зацикливания, и имея возможность исправлять даже более или менее отдаленные слова?
Приемлемые ответы включают пакеты, которые помогают перейти к предыдущему слову с ошибкой, исправить его и получить обратно или что-то в этом роде, а также небольшие фрагменты, возможно, из вашего собственного файла конфигурации, поскольку я полагаю, что другие люди придумали способы эффективного взаимодействия с Flyspell.
ttwo
например, хотя в моем меню я вижу 26 предложенных исправлений!ttwo
автокоррекция доtwo
первой попытки. Но я знаю, что вы имеете в виду. Из практического опыта, примерно в 90% случаев первая попытка дает правильное слово, вероятно, оставшиеся 9% требуют 2-3 попытки, а последний 1% - это когда flyspell просто не понимает, и мне нужно идти через 5+ попыток (или я это вручную исправляю).C-;
по умолчанию, и вы можете настроитьflyspell-auto-correct-binding
привязку к другому ключу на карте flyspell. (Или просто связать это обычным способом, конечно.)Я уверен, что другие люди придумают различные решения, которые будут полезны для будущих читателей. Однако вот как я в настоящее время справляюсь с этим.
Я думаю, что
flyspell-correct-word-before-point
это хорошее место для старта, потому что, по крайней мере, его можно вызвать нажатием клавиши, и он отображает меню возможных исправлений. Для исправления меню я написал пакет Ace Popup Menu, который использует Avy в качестве бэкэнда. Это заменяет всплывающее меню графического интерфейса пользователя, котороеflyspell-correct-word-before-point
использует (функция вызываетсяx-popup-menu
) текстовым всплывающим меню, которое представляет помеченные пункты меню: один или два нажатия клавиш, и все готово.Чтобы решить вторую проблему (невозможность исправить слова «на расстоянии»), я написал этот помощник:
Это похоже на работу.
источник
С помощью helm-flyspell вы можете эффективно выбирать из списка исправлений. Я использую следующий код, чтобы перейти к ошибкам и исправить их, он сохраняет положение точки,
mark-ring
чтобы вы могли вернуться к той позиции, где вы начали или исправили слова ранее:источник