o comportamento auto-complete do emacs com sublinhados no modo python

3

No meu .emacs , tenho a seguinte linha de código:

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

Isso é para que comandos como forward-word e backward-kill-word parem em quaisquer sublinhados que estejam em uma palavra. Este é um comportamento diferente do padrão, e é o comportamento que eu quero. O problema é que, em seguida, auto-complete-mode também respeita os sublinhados como limites de palavras de uma forma indesejável. Por exemplo, se eu tiver uma variável chamada foo_var e eu digitar fo e, em seguida, tentar concluir, ela só será concluída em foo not foo_var .

Em text-mode e c-mode , o comportamento é exatamente o que eu quero, ou seja, o movimento obedece a sublinhados, mas o auto-complete-mode será concluído em todos eles. O que preciso alterar na minha configuração auto-complete-mode para corrigir isso no Python?

    
por jarvisschultz 27.01.2013 / 18:54

1 resposta

1

Consegui resolver meu problema. Eu fiz um diff nas tabelas de sintaxe carregadas para python-mode e c-mode (usando C-h s ). Notei que em c-mode , o sublinhado era um caractere de símbolo ("_") e em python-mode o sublinhado era um caractere de pontuação ("."). Então, eu simplesmente mudei a linha de código acima mencionada para

(modify-syntax-entry ?_ "_" python-mode-syntax-table)
    
por 27.01.2013 / 23:29