2012-01-20 16 views
7

Esiste e equivalente a func menu per GNU emacs? Ho usato func menu quando ho avuto accesso a xemacs e preferisco il suo comportamento a quello di speedbar o sr-speedbar. In particolare:equivalente a GNU emacs del menu func

  • Mi piace che vengano visualizzate solo le funzioni per il file corrente.

  • L'elenco delle funzioni può essere estratto dal frame corrente e non è una finestra separata che potrebbe essere nascosta.

  • Il nome della funzione corrente compare nella riga della modalità.

C'è un pacchetto per Emacs GNU, che è un'approssimazione più vicina a func-menù?

risposta

7

imenu sarebbe la funzione analoga in GNU Emacs.

Vedi C-hfimenu-add-menubar-indexRET.
È possibile chiamarlo nei ganci modalità per le modalità con supporto imenu.

Naturalmente elisp è supportato, quindi per un breve demo:

  • M-xfind-libraryRETimenuRET
  • M-ximenu-add-menubar-indexRET

e poi vedere la nuova voce "Indice" nella barra dei menu, e anche sulla C- <mouse3>

Naturalmente c'è anche un'interfaccia di tastiera, semplicemente chiamando MximenuRET (con Completamento TAB), ma mi raccomando vivamente di aggiungere l'integrazione ido che può essere trovata al EmacsWiki * - Trovo che sia un'interfaccia generalmente più veloce rispetto all'utilizzo del mouse.

Per ulteriori dettagli, vedere Chig(elisp) ImenuRET

Per la configurazione, vedere Mxcustomize-groupRETimenuRET

(*) Lungo con nu altri modi per migliorare la funzionalità, quindi anche se non si desidera utilizzare ido, è necessario avere una lettura attraverso la pagina Wiki dopo aver visto la versione di base in azione.

3

Is this the XEmacs func-menu mode you're talking about? Fornisce un elenco di funzioni nel file corrente.

Se è così, allora si può in gran parte replicare la funzionalità in GNU Emacs con la raccolta di Emacs strumenti di sviluppo, CEDET (in particolare il codice parser semantica) e il browser di codice Emacs, ECB.

  • mostra tutti i simboli nel buffer del codice sorgente selezionato. Si tratta di una finestra separata nel senso di Emacs, ovvero un'area di modifica che mostra un singolo buffer, alcuni dei quali possono trovarsi all'interno di un'unica finestra di gestione delle finestre. Non è una cornice Emacs, quindi non sarà coperta.
  • Semantic's stickyfunc-mode può mostrare la funzione corrente in una riga nella parte superiore del buffer del codice sorgente. Utilizza la funzione header line specifica per GNU Emacs. Questo non è esattamente come mostrare il nome della funzione nella riga della modalità, ma abbastanza vicino.

Si noti che la BCE richiede CEDET ed entrambi tendono ad essere difficili da installare senza il gestore di pacchetti XEmacs.

+0

Per inserire il nome della funzione nella riga della modalità, è possibile utilizzare 'which-function-mode'. –

+0

Grazie, la quale-function-mode è parte di ciò che sto cercando – perogiex

+0

CEDET è abbastanza complicato da installare, questo potrebbe richiedere del tempo. – perogiex

0

Non sono sicuro, ma ho pensato che lo "passasse a una funzione all'interno di un buffer" si chiamava fume-mode. In questo caso, la ricerca di un analogo per la modalità fume potrebbe aiutarti a capire cosa stai cercando.

Ecco un estratto dal manuale XEmacs che cita fumi-mode:.

"41. Vai a una funzione all'interno di un buffer

Supponiamo di avere un file con un sacco di funzioni in Bene, questo pacchetto semplifica il passaggio a una di queste funzioni.I nomi di le funzioni nel buffer corrente vengono automaticamente inseriti in un menu di menu , si seleziona uno dei nomi di funzione e il punto è spostato verso quella stessa funzione. Il marchio è push sul ring, quindi puoi tornare facilmente dove ti trovavi. In alternativa, è possibile utilizzare immettere il nome della funzione desiderata tramite il minibuffer che offre completando l'input di lettura. Inoltre, il nome della funzione prima del punto viene visualizzato facoltativamente nella modeline.

I seguenti modi sono supportati:

Ada, Assembly, BibTex, C++, C, Dired, Ehdm, ELisp, FORTRAN, Ksh, lattice, Lelisp, Makefile, acero, Modula2, Modula-3 , Contorno, Objective-C, Pascal, Perl, Postscript, Prolog, PVS, Python, SGML, Scheme, Tcl, Verilog, Manuale, Ruby, JavaScript

per installare questo pacchetto, aggiungere il seguente al vostro file di inizializzazione:

(add-hook 'find-file-hooks 'fume-setup-buffer) 

(add-hook 'Manual-mode-hook 'turn-on-fume-mode)" 
Problemi correlati