2011-12-24 9 views
6

Tutti "Mx d'uovo" comandi funzionare beneegg.el è caricato ma uovo-minor-mode non è abilitata (senza "Cx v" combinazioni di tasti)

M-x egg-start-new-branch 
    start new branch with name: xxx 

ma tutti i "Cx v" associazioni di tasti sono ancora legati a "VC" comandi (mi aspettavo Cx vb di legarsi a uovo-start-nuova-filiale)

C-h k 
    C-x v b runs the command vc-switch-backend, which is an interactive 

ho bisogno di fare altro oltre quarantina facendo un (require 'uovo)?


Ulteriori informazioni

"Descrivi variabile: uovo-minor-mode"

"egg-minor-mode is a variable defined in `egg.el'. Its value is t" 

"Mx descrivere-minor-mode" -> uovo-minor-mode

"no such minor mode" 

risposta

4

Un po 'in ritardo, ma mi sono imbattuto nello stesso problema. Hai detto in un commento che stai usando git 1.7. Il fatto è che egg richiede che la versione 1.6 funzioni, e in realtà controlla che tu stia usando quella versione at line 5939. È possibile vedere che quando la stringa non corrisponde, il corpo del modulo when non viene eseguito; ma questo è esattamente dove è impostata la mappa dei tasti!

Quindi, se si vuole essere avventurosi, si può semplicemente sostituire il 1.6. da 1., o 1.7. (ma allora si dovrà ricordarsi di cambiarla quando si aggiorna git a 1,8) e l'uovo-mode caricherà bene, keymap e tutto. Utilizzare a proprio rischio, però; Non so cosa introduca la versione 1.7 e l'uovo potrebbe fare qualcosa di inaspettato.

+0

Fantastico; anzi, dopo aver sostituito 1.6 a 1.7 i legami delle chiavi funzionano, e probabilmente anche aperto un barattolo di vermi :) Grazie! –

+0

Qualcuno dovrebbe segnalare un bug; se la versione git è sbagliata, non dovrebbe semplicemente morire e lasciare una modalità zombie alle spalle. – tripleee

1

Si può fare M-x customize-group per uovo e controllare il valore di egg-mode-key-prefix? Questo deve essere impostato su "C-x v" affinché funzioni correttamente; se lo hai cambiato da qualche parte (forse nel tuo .emacs?) le associazioni di tasti non funzioneranno correttamente.

+0

Il comando 'C-h w egg-start-new-branch' indica una associazione diversa? – phils

+0

@philis: Ottengo "egg-start-new-branch non è su nessuna chiave" –

+0

@tikhon: Ch v (Descrivi la variabile) egg-mode-chiave-prefisso restituisce 'Il suo valore è "Cx v"' –

1

Non ho familiarità con egg. Forse devi essere in qualche modo (ad esempio egg-minor-mode) in modo che i binding di tasti ti aspettino di essere attivi?

Se ti senti/sai che sei in modalità a destra e combinazioni di tasti che di modalità non sembrano includere quello che ci si aspetta, si può dare un'occhiata più da vicino in questo modo: libreria di caricamento help-fns+.el, e utilizzare Ch Mc a guarda i collegamenti di ciascuna mappa dei tasti che ti interessa. Vedi anche HelpPlus.

Un'altra idea è ovviamente quella di dare un'occhiata al codice sorgente dell'uovo e vedere cosa sta succedendo. Il debugger Emacs è tuo amico: M-x debug-on-entry SOME-FUNCTION.

IOW, a meno che qualcun altro qui non abbia un aiuto specifico per le uova (scusate, io no), la soluzione migliore è rovistare un po 'per scoprire cosa sta succedendo.

(Più tardi) In realtà, ora vedo che si menziona la modalità nella riga dell'oggetto. Quindi provare questo, per caricare il file e quindi accendere il modo minore:

(require 'egg) 
(egg-minor-mode 1) 
+0

Drew: (part-1) Ho provato quanto segue. Assicurati che (richiedano 'egg) e (egg-minor-mode 1) siano nel mio .emacs. Carica anche help-fns +. Emac riavviato e apre un file python sotto controllo git. Ha fatto una "Descrivi la variabile: egg-minor-mode" e ripristina "egg-minor-mode è una variabile definita in' egg.el '. Il suo valore è t ". Fin qui tutto sembra ok. Tuttavia nota che se faccio un "C-h m" per elencare le modalità del file, mostra la modalità python e diverse modalità minori; tuttavia egg-minor-mode NON è uno di questi. –

+0

Drew: (part-2): Inoltre, se faccio una "M-x Descrive-Minime-Mode" e scrivo, ad esempio, auto-complete-mode lo descrive; ma se provo egg-minor-mode, ottengo "nessuna modalità minore". Quindi, sembra che la variabile egg-minor-mode sia "true", ma la modalità non è realmente abilitata? Usando help-fns +, se faccio "Mx describe-keymap egg-minor-mode-map, sono elencate tutte le keymapping attese, ma quelle sono quelle non abilitate, suppongo perché la modalità egg-minor non sia stata calciata -in. –

+1

In questo caso, sembra che '(egg-minor-mode 1)' non sia il modo per attivare la modalità, il che significherebbe che non segue la normale convenzione. il file sorgente che definisce la modalità, ma prima prova 'Mx egg-minor-mode', per accenderlo manualmente.Se tutto funziona OK dopo averlo fatto, quindi fai' Ch f egg-minor-mode' e fai clic sul link che conduce alla sua definizione, controlla la sua stringa doc e guarda il codice, per determinare come accenderlo usando Lisp (e sì, non puoi sempre giudicare in base al valore della * variabile * se la modalità è attiva/disattiva.) – Drew

0

non ho usato uovo-mode prima, ma per eseguire il debug ho provato questo. Ho installato egg.el controllando il repository git.

git clone git://github.com/byplayer/egg.git 

Dopo che ho iniziato emacs, emesso M-x load-file e ha dato il percorso t/egg/egg.el ed è caricato con successo. Successivamente ho aperto un file in quella cartella C-x C-f seguito da t/egg/egg.el. Immediatamente dopo aver caricato il file, Emacs è entrato automaticamente nella modalità principale Emacs-Lisp e in modalità minore. E C-x v mi mostra direttamente: Egg:file: nella barra di stato. Quindi tutto sembra funzionare perfettamente fuori dagli schemi.

Quando apri un file per testare automaticamente egg-minor-mode, sei sicuro di aver aperto un file che è stato archiviato con git, dove hai una cartella .git nella cartella/percorso?

A meno che non si sappia di più sul tuo .emacs e sull'installazione, non riesco a eseguire il debug più avanti, ma non sono in grado di riprodurre l'errore così com'è.

+0

Mattias: È un progetto python che ho clonato da github. Tutti i comandi git funzionano dalla shell dei comandi, e quando apro un file python, nella barra di stato del buffer emacs vedo l'attuale ramo/informazioni Git. Non ho alcun errore all'avvio di emacs (nessun messaggio di errore che richiede di avviare w/--debug-info), e tutti i comandi di egg funzionano bene via Mx egg -... (così, il comando load nel mio. il file emacs sembra funzionare?). È solo che le combinazioni di tasti non funzionano. –

Problemi correlati