2012-12-28 24 views
6

टैब यास्निपेट की कीबाइंडिंग अक्सर अन्य उपयोगी कुंजी ओवरराइट करता है।yasnippet के लिए बाध्यकारी 'टैब' अनसेट करें?

वहाँ अन्य टैब उपयोग को सक्षम करने के टैब Yasnippet के बंधन को निष्क्रिय करने के लिए एक रास्ता है?

उत्तर

9

ये बंधनकारी yasnippet के प्रमुख निकाल देगा:

(define-key yas-minor-mode-map [(tab)] nil) 
(define-key yas-minor-mode-map (kbd "TAB") nil) 

काम करना चाहिए। या आप tab को किसी अन्य कमांड पर बांध सकते हैं।

+0

Yasnippet संस्करण 0.8.0 पर OSX चलाने के लिए के रूप में, 'Yas-expand'' yasnippet भीतर परिभाषित किया गया है। el' और 'yasnippet.elc' को 'read-kbd-macro' के रूप में, जो प्रत्येक व्यक्तिगत स्निपेट के भीतर परिभाषित कीबोर्ड बाइंडिंग का उपयोग करता है। यदि टैब का उपयोग करने वाले स्निपेट निर्देशिका में विशेष मोड फ़ोल्डर में एक या अधिक स्निपेट हैं (उदा।, 'सी-आई'), जो नियमित टैब कुंजी अक्षम कर देगा। क्लासिक अनसेट या '.emacs' के भीतर रखी गई प्रमुख सेटिंग्स को कोई प्रभाव नहीं पड़ेगा। इसलिए, प्रत्येक स्निपेट को 'सीआई' को हटाने के लिए संशोधित करने की आवश्यकता होगी और कुछ और के साथ प्रतिस्थापित किया जाएगा - उदाहरण के लिए, '# बाध्यकारी: एम-/' – lawlist

+2

यह वास्तव में काम नहीं करता है, मैंने भी कोशिश की (सेटक यास/ट्रिगर-की नील) यह भी काम नहीं करता है, मैं yasnippet के लिए टैब अक्षम करना चाहता हूं, यह इतना मुश्किल क्यों है? – shelper

-1
(setq yas-minor-mode-map ;This MUST before (require 'yasnippet) 
    (let ((map (make-sparse-keymap))) 
    (define-key map (kbd "M-i") 'yas-expand) 
    (define-key map "\C-c&\C-n" 'yas-new-snippet) 
    (define-key map "\C-c&\C-v" 'yas-visit-snippet-file) 
    map)) 

(require 'yasnippet) 
5

मुझे पार्टी के लिए देर हो चुकी है लेकिन इस प्रश्न में स्वीकृत उत्तर पर आया ... काम नहीं किया।

थोड़ा सा प्रयोग किया और अंत में एक समाधान मिला।

;; It is crucial you first activate yasnippet's global mode. 
(yas/global-mode 1) 

;; The following is optional. 
(define-key yas-minor-mode-map [backtab]  'yas-expand) 

;; Strangely, just redefining one of the variations below won't work. 
;; All rebinds seem to be needed. 
(define-key yas-minor-mode-map [(tab)]  nil) 
(define-key yas-minor-mode-map (kbd "TAB") nil) 
(define-key yas-minor-mode-map (kbd "<tab>") nil) 
+0

मुझे संदेह है कि यह महत्वपूर्ण नहीं है कि आप * yasnippet को सक्रिय करें। लाइब्रेरी को * लोड * करने की आवश्यकता होगी, हालांकि, इससे पहले कि आप इसके कीमैप्स का उपयोग कर सकें। 'eval-after-load' लाइब्रेरी को तुरंत लोड किए बिना इन प्रकार की कॉन्फ़िगरेशन निर्दिष्ट करने का एक तरीका प्रदान करता है। – phils

1

use-package के साथ: सोचा मैं एक जवाब है कि काम करता योगदान देना चाहिए

(use-package yasnippet 
    :demand t 
    :bind (:map yas-minor-mode-map 
     ("TAB" . nil) 
     ("<tab>" . nil)) 
    :config 
    (yas-global-mode))