La scheda Tab sovrascrive spesso altri tasti utili per lo yasnippet.Unset "Tab" vincolante per yasnippet?
C'è un modo per disattivare Tab legame di Yasnippet per consentire ad altri Tab utilizzo?
La scheda Tab sovrascrive spesso altri tasti utili per lo yasnippet.Unset "Tab" vincolante per yasnippet?
C'è un modo per disattivare Tab legame di Yasnippet per consentire ad altri Tab utilizzo?
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.
(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)
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)
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
Con use-package
:
(use-package yasnippet
:demand t
:bind (:map yas-minor-mode-map
("TAB" . nil)
("<tab>" . nil))
:config
(yas-global-mode))
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
in realtà non funziona, ho anche provato (setq yas/trigger-key nil) inoltre non funziona, voglio disabilitare TAB per yasnippet, perché è così difficile? – shelper