Después de una larga investigación en la web y un examen cuidadoso de la ac
documentación con muchas pruebas en mi máquina para examinar el código línea por línea, se me ocurrió esta solución que también puede yasnippet
funcionar (optioinal) sin ningún tipo de conflicto.
pon esto en tu init.el
o .emacs
cuidando la secuencia:
(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:
como se menciona en la documentación de ac
, la adición ac-modes
y los ganchos deben realizarse antes de cargar (ac-config-default)
.
Algunos sugirieron poner un código para jugar con la TAB
clave que no necesitaba y no recomiendo, ya que de alguna manera destruirá algo más más tarde. Sin embargo, vi a personas poner algo como esto al final justo antes global-auto-complete
:
(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")
Hasta que agregué (ac-flyspell-workaround)
la finalización automática fue demasiado lenta para pensar en usarla en Auctex ya que uso flyspell. Este error también se mencionó en la documentación. ¡Gracias!
Bono ¡
Me alegra saber de la documentación, aunque no está muy claro cómo, que uno puede agregar uno o más diccionarios definidos por el usuario! Intenté esto y funcionó bien.
agregue estas dos líneas justo después de la require-auto-complete
línea de arriba:
(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
Ahora en su .txt
archivo agregue sus candidatos favoritos para completar. Ahórrese de candidatos de menos de 4 letras, ¡no valen la pena! Simplemente ponga palabras de su gusto separadas por un salto de línea o RET
.
Ejemplo de los contenidos en el .txt
archivo:
inconsistencies
foobaremaild@foobar.com
do-not-put-your-password-here
long-line-in-any-programming-language-of-your-like
¡Disfrute de la finalización automática en LaTeX / AUCTeX con Emacs!