Depois de fazer uma longa pesquisa na web e um exame cuidadoso da ac
documentação com várias tentativas em minha máquina para examinar o código linha por linha, eu vim com essa solução que pode yasnippet
funcionar bem (optioinal) sem nenhum conflito.
coloque isso no seu init.el
ou .emacs
cuidando da sequência:
(require 'package)
(package-initialize)
;; yasnippet code 'optional', before auto-complete
(require 'yasnippet)
(yas-global-mode 1)
;; auto-complete setup, sequence is important
(require 'auto-complete)
(add-to-list 'ac-modes 'latex-mode) ; beware of using 'LaTeX-mode instead
(require 'ac-math) ; package should be installed first
(defun my-ac-latex-mode () ; add ac-sources for latex
(setq ac-sources
(append '(ac-source-math-unicode
ac-source-math-latex
ac-source-latex-commands)
ac-sources)))
(add-hook 'LaTeX-mode-hook 'my-ac-latex-mode)
(setq ac-math-unicode-in-math-p t)
(ac-flyspell-workaround) ; fixes a known bug of delay due to flyspell (if it is there)
(add-to-list 'ac-modes 'org-mode) ; auto-complete for org-mode (optional)
(require 'auto-complete-config) ; should be after add-to-list 'ac-modes and hooks
(ac-config-default)
(setq ac-auto-start nil) ; if t starts ac at startup automatically
(setq ac-auto-show-menu t)
(global-auto-complete-mode t)
Notas:
conforme mencionado na documentação de ac
, a adição ac-modes
e os ganchos devem ser feitos antes do carregamento (ac-config-default)
.
Alguns sugeriram colocar algum código para tocar com a TAB
tecla que eu não precisava e não recomendo, pois de alguma forma destruirá outra coisa mais tarde. No entanto, vi pessoas colocar algo assim no final, pouco antes global-auto-complete
:
(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")
Até eu adicionar o (ac-flyspell-workaround)
preenchimento automático, era muito lento para pensar em usá-lo no Auctex desde que eu use o flyspell. Este bug também foi mencionado na documentação. Obrigado!
Bônus
Fiquei feliz em saber da documentação, embora não seja muito claro como, que se pode adicionar um (s) dicionário (s) definido pelo usuário! Eu tentei isso e funcionou bem.
adicione estas duas linhas logo após a require-auto-complete
linha acima:
(add-to-list 'ac-dictionary-directories "~/.emacs.d/.dict") ; make sure this folder exists
(add-to-list 'ac-user-dictionary-files "~/.emacs.d/.dict/custom-dict.txt") ; put any name to your `.txt` file
Agora, no seu .txt
arquivo, adicione seus candidatos favoritos para conclusão. Salve-se de candidatos com menos de 4 letras, eles não valem a pena! Basta colocar palavras do seu gosto separadas por um feed de linha ou RET
.
Exemplo do conteúdo do .txt
arquivo:
inconsistencies
foobaremaild@foobar.com
do-not-put-your-password-here
long-line-in-any-programming-language-of-your-like
Aproveite o preenchimento automático no LaTeX / AUCTeX com o Emacs!