3

В моем .emacs меня есть следующая строка кода:

(modify-syntax-entry ?_ "." python-mode-syntax-table)

Это делается для того, чтобы такие команды, как forward-word и backward-kill-word останавливались на любом подчеркивании, которое есть в слове. Это поведение отличается от поведения по умолчанию, и это поведение, которое я хочу. Проблема в том, что тогда auto-complete-mode также учитывает подчеркивание как границы слов нежелательным образом. Например, если у меня есть переменная с именем foo_var , и я набираю fo а затем пытаюсь завершиться, она будет завершена только для foo не foo_var .

В text-mode и в режиме c-mode поведение именно то, что я хочу, т.е. движение подчиняется подчеркиванию, но auto-complete-mode завершится через них. Что мне нужно изменить в конфигурации auto-complete-mode чтобы исправить это в Python?

1 ответ1

1

Мне удалось решить мою проблему. Я сделал diff для таблиц синтаксиса, загруженных как для python-mode c-mode (используя C-h s). Я заметил, что в c-mode подчеркивание было символом символа ("_"), а в python-mode подчеркивание было знаком пунктуации ("."). Итак, я просто изменил вышеупомянутую строку кода на

(modify-syntax-entry ?_ "_" python-mode-syntax-table)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .