Saya ingin auto-complete
(ac) bekerja ketika saya berada di dalam AucTeX
mode. Saya mendapatkan semua paket dari MELPA dengan instalasi paket.
Ini adalah kode saya yang relevan dalam init.el
file:
(require 'package)
(package-initialize)
(require 'auto-complete-config)
(ac-config-default)
(global-auto-complete-mode t)
seperti yang Anda lihat, meskipun saya menetapkan ac
secara global itu tidak muncul di AucTeX
. Namun, dengan mengikuti instruksi dalam emacswiki ini , ac
mode ditampilkan di bilah status AucTeX
tetapi tidak berfungsi, tidak ada penyelesaian otomatis dengan mengetikkan karakter.
Notes
Emacs 24.4 di bawah Windows 7 32bit dan paket diperbarui.
latex
auctex
auto-complete-mode
gelar doktor
sumber
sumber
ac
melakukannya dengan baikauctex
. Saya sebutkanyasnippet
karena saya juga menggunakannya untuk memiliki snippet yang ditentukan pengguna dalam lateks. Jadi sampai Anda memberikan kode Anda, saya tidak tahu apakahyas
akan menghalangiac
.yasnippet
untuk melihat apakah autocomplete dan AUCTeX bekerja bersama seperti yang disarankan @giordano. Jika ya, maka masalahnya adalah dengan dimasukkannyayasnippet
. Jika demikian, mungkin pengaturan autocomplete Anda.yasnippet
saya menghapusnya dari init.el. Masalahnya paling mungkin dalam pengaturanauctex
danac
.Jawaban:
Setelah melakukan riset panjang di web dan memeriksa
ac
dokumentasi dengan hati-hati dengan banyak uji coba di mesin saya untuk memeriksa kode baris demi baris, saya menemukan solusi ini yang bisayasnippet
berfungsi dengan baik (optioinal) tanpa konfik.letakkan ini di
init.el
atau.emacs
atur urutannya:Catatan:
seperti yang disebutkan dalam dokumentasi dari
ac
, yang menambahac-modes
dan kait harus dilakukan sebelum pemuatan(ac-config-default)
.Beberapa menyarankan untuk meletakkan beberapa kode untuk bermain dengan
TAB
kunci yang saya tidak perlu dan tidak merekomendasikan karena entah bagaimana akan menghancurkan sesuatu yang lain nanti. Namun, saya melihat orang-orang meletakkan sesuatu seperti ini di ujung sebelumglobal-auto-complete
:Sampai saya menambahkan
(ac-flyspell-workaround)
penyelesaian otomatis terlalu lambat untuk berpikir untuk menggunakannya di Auctex karena saya menggunakan flyspell. Bug ini juga disebutkan dalam dokumentasi. Terima kasih!Bonus
saya senang mengetahui dari dokumentasi, meskipun tidak begitu jelas bagaimana, bahwa seseorang dapat menambahkan kamus yang ditentukan pengguna! Saya mencoba ini dan bekerja dengan baik.
tambahkan dua baris ini tepat setelah
require-auto-complete
baris di atas:Sekarang di
.txt
file Anda, tambahkan kandidat favorit Anda untuk penyelesaian. Selamatkan diri Anda dari kandidat yang panjangnya kurang dari 4 huruf, mereka tidak layak! Sederhananya kata-kata seperti Anda dipisahkan oleh umpan baris atauRET
.Contoh konten dalam
.txt
file:Nikmati pelengkapan otomatis di LaTeX / AUCTeX dengan Emacs!
sumber
elisp
fungsi untuk membuang kata yang ditandai di buffer sambil menulis ke dalam.txt
diktio itu dengan cepat dan menambahkannya tanpa banyak usaha!Seperti yang saya katakan di komentar saya di atas, paket itu
auto-complete-auctex
juga dapat menyelesaikan masalah. Saya menguji keduanya, dan keduanya bekerja dengan baik. Akan lebih baik untuk membandingkan solusi @doctorate dan paket di atas dengan memberikan screenshot. Jika saya menulis$\sig$
, kode doktor memberi sesuatu seperti inidan paket
auto-complete-auctex
memberikan sesuatu seperti iniDitambahkan: Saya harus menyebutkan bahwa solusi @giordano juga berfungsi, berikut screenshot:
sumber
auto-complete
harus menjadi paket utama sementaraauto-complete-auctex
mungkin memiliki beberapa fitur tambahan. Saya akan mencobanya dan melaporkan jika perlu. Terima kasihBerikut ini adalah
auto-complete
konfigurasi terkait saya :Seperti yang Anda lihat, tidak ada yang spesial untuk AUCTeX, ini adalah konfigurasi standar
auto-complete
. Konfigurasi untukac-math
dijelaskan di situs webnya. Jika Anda tidak menggunakanac-math
, satu-satunya perbedaan yang masuk akal dengan konfigurasi Anda adalah(add-to-list 'ac-modes 'latex-mode)
.sumber
package-initialize
. Anda mungkin tidak menyukainya, tapi tolong jangan rekomendasikan praktik buruk sepertiload-path
manajemen manual dalam jawaban Anda.package-initialize
nanti.