2012-10-31 12 views
5

ho installato e configurato YASnippet con questo:Installazione YASnippet

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c") 
(require 'yasnippet) ;; not yasnippet-bundle 

(yas--initialize) 
(yas/load-directory "~/.emacs.d/packages/yasnippet-0.6.1c/snippets") 

Tuttavia, quando lancio Emacs mi dà un errore:

Warning (initialization): An error occurred while loading `/home/alexander/.emacs': 

Symbol's function definition is void: yas--initialize 

To ensure normal operation, you should investigate and remove the 
cause of the error in your initialization file. Start Emacs with 
the `--debug-init' option to view a complete error backtrace. 
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c") 
(require 'yasnippet) ;; not yasnippet-bundle 

(yas--initialize) 
(yas/load-directory "~/.emacs.d/packages/yasnippet-0.6.1c/snippets") 

Che cosa sto facendo di sbagliato? Ho cercato di trovare la risposta ma senza successo. (Ho anche provato con un'altra versione di yasnippet yasnippet-0.6.1b ma era lo stesso.)

risposta

5

Proprio a colpo d'occhio, che

(yas--initialise) 

dovrebbe essere

(yas/initialize) 

I' m in esecuzione 0.6.1 e non esiste una funzione come yas--initialize nel pacchetto.

Il mio codice di inizializzazione sembra

(require 'yasnippet) 
(yas/initialize) 
(yas/load-directory 
(dot-emacs "elpa/yasnippet-0.6.1/snippets")) 

Penso che appena ricevuto un codice di inizializzazione confuso da qualche parte.

EDIT

avrei omesso la load-directory chiamata nel mio campione dal momento che è questo il punto. Ma per quel che vale, dot-emacs è solo una funzione config-agnostic che uso per fare riferimento a file in relazione alla mia init:

(defun dot-emacs (relative-path) 
    "Return the full path of a file in the user's emacs directory." 
    (expand-file-name (concat user-emacs-directory relative-path))) 
+0

ora dice "La definizione della funzione del simbolo è nullo: dot-emacs" – AlexanderNajafi

+0

@ mr.axelander, ho trascurato di menzionare che 'dot-emacs' è una mia funzione personalizzata. Il codice 'yas/load-directory' che avevi dovrebbe andare bene. Mi dispiace per la confusione. – harpo

+0

Risposta molto bella (e grazie per il dot-emacs, come noob è diventata una nuova aggiunta del mio .emacs ;-))! – Rick77

4

FYI nel caso in cui mai aggiornamento: le informazioni che hai è corretta per la versione 0.8, ma per 0.7 e sotto yas/initialize è corretto. Vedi https://github.com/capitaomorte/yasnippet/commit/90cd855c14f92088067425381ea5225d8af8e6f0

+0

Sì, questo mi ha confessato per un po '. Ho ottenuto il codice init.el dal sito YAS che diceva che dovevo usare (yas/initialize) ma che non funzionava e produceva l'errore La definizione della funzione del simbolo è nulla: yas/initialize. Ho deciso di dare (sì - inizializza) una prova in init.el e questo funziona per me. – Ubiquitous