2012-12-28 20 views

回答

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上運行,'亞斯 - expand'是內'yasnippet定義。 el'和'yasnippet.elc'作爲'read-kbd-macro',它使用每個片段中定義的鍵盤綁定。如果片段目錄中的特定模式文件夾中存在一個或多個使用選項卡(例如'C-I')的片段,則會禁用常規制表鍵。 '.emacs'中放置的經典未設置或定義鍵設置將不起作用。因此,每個片段需要修改以刪除'CI'並用另外的東西替換 - 例如'#binding:M- /' – lawlist

+2

它實際上不工作,我也試過(setq yas/trigger-key nil)也沒有工作,我jsut要禁用TAS YASNIPET,爲什麼這麼難? – 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))