AucTeX मोड में ऑटो-पूरा काम कैसे करें?


11

मैं चाहता हूं auto-complete(एसी) जब मैं AucTeXमोड के अंदर काम करूं । मुझे पैकेज स्थापना के द्वारा सभी पैकेज MELPA से मिलते हैं।

यह init.elफ़ाइल में मेरा प्रासंगिक कोड है :

(require 'package)
(package-initialize)
(require 'auto-complete-config)
(ac-config-default)   
(global-auto-complete-mode t)

जैसा कि आप देख सकते हैं, हालांकि मैं acविश्व स्तर पर स्थापित कर रहा हूं लेकिन यह दिखाई नहीं देता है AucTeX। हालाँकि, इस इमैक्विस्की के निर्देशों का पालन करते हुए , acमोड को स्टेटस बार में प्रदर्शित किया गया था , AucTeXलेकिन गैर-कार्यप्रणाली, टाइपिंग वर्णों द्वारा कोई भी ऑटो-पूर्ति नहीं।

नोट्स
विंडोज 7 32 बिट के तहत एमएसीएस 24.4 और पैकेज अपडेट किए गए।


आपकी समस्या यह है कि एक साथ काम करना यासिपेट या अकेले में करना, जबकि लाटेक्स मोड में? बाद के मामले में, मैं बहुत काम के बिना AUCTeX के साथ एसी का उपयोग करता हूं।
जियोर्दानो

पहला, मैं चाहता हूं कि मैं acअच्छा करूं auctex। मैंने उल्लेख किया है yasnippetक्योंकि मैं इसे लेटेक्स में कुछ उपयोगकर्ता-परिभाषित स्निपेट के लिए भी उपयोग करता हूं। इसलिए जब तक आप अपना कोड प्रदान नहीं करते हैं, मैं नहीं बता सकता कि क्या yasरास्ते में मिलेगा ac
डॉक्टरेट

टोन, कृपया! yasnippetस्वत: पूर्ण और AUCTeX @giordano के रूप में एक साथ काम करने के लिए देखने के लिए बाहर ले जाने की कोशिश करें । यदि हाँ, तो समस्‍या का समावेश है yasnippet। यदि हां, तो यह शायद आपका स्वतः पूर्ण सेटअप है।
दान

हम yasnippetइसे अपने init.el से हटा सकते हैं। समस्या सबसे शायद के सेटअप में है auctexऔर ac
डॉक्टर

1
क्रिस्टोफर मोनसेंटो github.com/monsanto/auto-complete-auctex द्वारा पैकेज देखें । मैंने इसका परीक्षण नहीं किया है।
नाम

जवाबों:


11

acलाइन द्वारा कोड लाइन की जांच करने के लिए मेरी मशीन पर बहुत सारे परीक्षणों के साथ वेब और दस्तावेज़ों की सावधानीपूर्वक जांच में एक लंबा शोध करने के बाद , मैं इस समाधान के साथ आया था जो yasnippetबिना किसी कॉन्फिडेंस के भी काम कर सकता है (ऑप्टिओल)।

इसे अपने init.elया .emacsअनुक्रम की देखभाल में लगाएं:

(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) 

नोट्स:
जैसा कि प्रलेखन में उल्लेख किया गया है ac, ac-modesलोड करने से पहले और हुक जोड़ना चाहिए (ac-config-default)

कुछ ने TABकुंजी के साथ खेलने के लिए कुछ कोड रखने का सुझाव दिया जिसकी मुझे आवश्यकता नहीं थी और इसकी अनुशंसा नहीं करते क्योंकि यह किसी तरह बाद में कुछ और नष्ट कर देगा। हालाँकि, मैंने देखा कि लोग कुछ इस तरह अंत में पहले ही डाल दिया global-auto-complete:

(ac-set-trigger-key "TAB")
(ac-set-trigger-key "<tab>")  

जब तक मैंने (ac-flyspell-workaround)ऑटो-कम्पलीट को जोड़ा तब तक यह बहुत धीमा था जब मैं फ्लाईस्पेल का उपयोग करने के बाद से ऑक्टेक्स में इसका उपयोग करने के बारे में सोच रहा था। प्रलेखन में इस बग का भी उल्लेख किया गया था। धन्यवाद!

बोनस
मैं प्रलेखन से यह जानकर खुश था, हालांकि यह स्पष्ट नहीं है कि, उपयोगकर्ता-परिभाषित शब्दकोश (ies) को कैसे जोड़ सकता है! मैंने यह कोशिश की और अच्छा काम किया।

require-auto-completeऊपर की लाइन के बाद इन दोनों लाइनों को जोड़ें :

(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  

अब अपनी .txtफ़ाइल में अपने पसंदीदा उम्मीदवारों को पूरा करने के लिए जोड़ें। 4-अक्षर से कम लंबे उम्मीदवारों से खुद को बचाएं, वे इसके लायक नहीं हैं! सीधे शब्दों में अपनी पसंद के शब्दों को एक पंक्ति फ़ीड द्वारा अलग किया जाए या RET

.txtफ़ाइल में सामग्री का उदाहरण :

inconsistencies
foobaremaild@foobar.com
do-not-put-your-password-here
long-line-in-any-programming-language-of-your-like

Emacs के साथ LaTeX / AUCTeX में स्वतः पूर्णता का आनंद लें!


यह अच्छा होगा अगर elispकिसी भी चिह्नित शब्द को बफर में फेंकने के लिए एक फ़ंक्शन होगा , जबकि उस .txtतानाशाह पर लिखकर उसे उड़ाना होगा और इसे बहुत प्रयास के बिना जोड़ना होगा!
डॉक्टरेट

6

जैसा कि मैंने अपने उपरोक्त टिप्पणी में बताया था, पैकेज auto-complete-auctexभी समस्या को हल कर सकता है। मैंने दोनों का परीक्षण किया, और वे दोनों अच्छी तरह से काम करते हैं। स्क्रीन-शॉट्स देकर @doctorate और उपरोक्त पैकेज के समाधान की तुलना करना अच्छा होगा । अगर मैं लिखता हूं $\sig$, तो डॉक्टरेट का कोड कुछ इस तरह का है

यहाँ छवि विवरण दर्ज करें

और पैकेज के auto-complete-auctexकुछ इस तरह से देता है

यहाँ छवि विवरण दर्ज करें

जोड़ा गया: मुझे यह उल्लेख करना चाहिए कि @giordano का समाधान यहां भी काम करता है, एक स्क्रीन-शॉट:

यहाँ छवि विवरण दर्ज करें


मुझे लगता auto-completeहै कि मुख्य पैकेज होना चाहिए जबकि auto-complete-auctexकुछ अतिरिक्त विशेषताएं हो सकती हैं। मैं कोशिश करूँगा और यदि आवश्यक हो तो रिपोर्ट करूंगा। धन्यवाद
डॉक्टर की उपाधि से

2
मैंने पैकेज स्थापित किया है, लेकिन मैं पूर्णता के साथ पॉपअप को खोलने में असमर्थ हूं ... आपने यह कैसे किया और क्या इस पर कुछ प्रलेखन है?
रेवेन

@ रेवेन मुझे यकीन नहीं है कि मेरे पास "वास्तव में" काम है। लेकिन अगर आप टीएबी प्रमुख चरणों में जोड़ते हैं जो डॉक्टरेट ने बचने के लिए कहा था, तो टीएबी को दबाने से यह काम करता है (मेरे लिए)।
Chill2Macht

4

निम्नलिखित मेरा auto-completeसंबंधित विन्यास है:

(require 'package)
(package-initialize)
(require 'auto-complete-config)
(ac-config-default)

;; Activate auto-complete for latex modes (AUCTeX or Emacs' builtin one).
(add-to-list 'ac-modes 'latex-mode)

;; Activate ac-math.
(eval-after-load "latex"
  '(when (featurep 'auto-complete)
     ;; See https://github.com/vspinu/ac-math
     (require 'ac-math)
     (defun ac-latex-mode-setup ()       ; add ac-sources to default ac-sources
       (setq ac-sources
         (append '(ac-source-math-unicode ac-source-math-latex ac-source-latex-commands)
             ac-sources)))
     (add-hook 'LaTeX-mode-hook 'ac-latex-mode-setup)))

जैसा कि आप देख सकते हैं, AUCTeX के लिए कुछ खास नहीं है, यह मानक विन्यास है auto-complete। इसके लिए कॉन्फ़िगरेशन ac-mathइसकी वेब साइट पर वर्णित है। यदि आप उपयोग नहीं करते हैं ac-math, तो आपके कॉन्फ़िगरेशन के साथ एकमात्र समझदार अंतर है (add-to-list 'ac-modes 'latex-mode)


-1: का उपयोग करें package-initialize। आप इसे पसंद नहीं कर सकते हैं, लेकिन कृपया load-pathअपने उत्तरों में मैनुअल प्रबंधन जैसी बुरी प्रथाओं की सिफारिश न करें।
चंद्रग्रहण

2
@lunaryorn मुझे नहीं लगता कि मैंने बुरी प्रथाओं की सिफारिश की है, मैंने स्पष्ट रूप से लिखा है कि यह एक सहायक पैकेज को लोड करने के लिए एक गंदा हैक है। मैं package-initializeवैसे भी बाद में उत्तर का सुधार करने की कोशिश करूंगा ।
जिओरडनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.