Ответ 1
Вот несколько советов:
-
(setq ac-auto-start t)
автоматически запускается автозаполнение. Если вы измените это на(setq ac-auto-start 1)
(или 2 или 3), то он начнется только после того, как будет напечатано много символов. Это может не решить вашу проблему, хотя, если после ввода;
, он рассматривает все предыдущее слово как часть текущего автоматического завершения поиска. -
Возможно, проблема заключается в том, что он не распознает точку с запятой как разделительный символ (например, пробел), поэтому он думает, что вы все еще добавляете последнее слово. Возможно, добавление строки с запятой в ac-ignores могло бы сделать трюк? (Не уверен, какой синтаксис для этого будет)
-
Возможно, вы можете предотвратить автоматическое завершение с помощью клавиши ввода, добавив:
(define-key ac-complete-mode-map "\t" 'ac-complete)
и(define-key ac-complete-mode-map "\r" nil)
. Я не уверен, как это будет взаимодействовать с DWIM, хотя (включено по умолчанию). -
Попробуйте добавить точку с запятой в качестве ключа автозаполнения?
Знание моего .emacs по шкале от 0 до 10 похоже на 1.5, но, возможно, это затмит несколько лучших идей.