2012-12-28 11 views

risposta

9

Questi saranno rimuovere la chiave di yasnippet vincolante:

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

dovrebbe funzionare. O è possibile associare tab a un altro comando.

+0

Per quanto riguarda Yasnippet versione 0.8.0 in esecuzione su OSX, 'Yas-expand' è definito all'interno di' yasnippet. el' e 'yasnippet.elc' come' read-kbd-macro', che usa i binding della tastiera definiti all'interno di ogni singolo snippet. Se ci sono uno o più frammenti nella cartella della modalità particolare all'interno della directory snippet che utilizza una scheda (ad esempio, 'C-I'), ciò disabiliterà la tabulazione regolare. Le impostazioni di unset o di definizione classiche collocate all'interno di '.emacs' non avranno alcun effetto. Pertanto, ogni snippet dovrebbe essere modificato per rimuovere 'CI' e sostituito con qualcos'altro - ad esempio,' # binding: M-/' – lawlist

+2

in realtà non funziona, ho anche provato (setq yas/trigger-key nil) inoltre non funziona, voglio disabilitare TAB per yasnippet, perché è così difficile? – 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

Sono in ritardo per la festa ma ho trovato la risposta accettata in questa domanda che ... non ha funzionato.

Sperimentato un po 'e finalmente trovato una soluzione. Ho pensato che dovrebbe contribuire una risposta che fa lavoro:

;; 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

Sospetto che non sia cruciale che tu * attivi * yasnippet. La libreria dovrebbe essere * caricata *, tuttavia, prima di poter manipolare le sue mappe di tasti. 'eval-after-load' fornisce un modo per specificare questi tipi di configurazioni senza dover caricare immediatamente la libreria. – phils

1

Con use-package:

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