2013-08-28 11 views

risposta

2

Si può guardare a ECB (è meglio prendere my fork di esso, come è adattato alla nuova Emacs & CEDET) - è in grado di visualizzare informazioni sul codice sorgente di averlo scaricato da Semantic (sottopackage CEDET) o tramite imenu (per le lingue che non sono supportati da Semantic).

Speedbar (incluso nel GNU Emacs) può anche mostrare un elenco di oggetti di alto livello, ma non mostra differenze tra le importazioni, le funzioni di altre cose di alto livello

1

Per la prima domanda, utilizzare Mxspeed-bar, come suggerito da Alex.

Per il secondo, attivare hs-minor-mode, M-xhs-minor-mode, e utilizzare C-cC- @C-S-h per nascondere tutti i metodi e C-cC- @C-S-s per mostrare.

+0

Non c'è una domanda "prima" e una "seconda". La seconda frase nella domanda dell'OP spiega in maggior dettaglio cosa significa la prima frase. – tripleee

+0

La prima frase chiede di "elencare". Il secondo chiede di "mostrare/nascondere". Domande diverse, anche se correlate. –

0

Per me, il metodo più semplice e conveniente per ricercare rapidamente i metodi è il comando helm-occurr (C-x c M-s o). Inizi a digitare il nome del metodo a cui vuoi saltare e i suggerimenti iniziano a scoppiare mentre scrivi. Quindi premi Invio per selezionare quello che vuoi e il tuo cursore salta proprio lì nel codice. Helm-occurr non è stato scritto rigorosamente per questo scopo, ma funziona abbastanza bene in questo modo.

6

Suggerisco di utilizzare elpy.

C-c C-o esegue elpy-occurr-definizioni che crea un nuovo buffer con un elenco di tutte le firme di classe e funzione.

È possibile spostarsi nell'elenco utilizzando C-n e C-p. La modalità funziona con la modalità secondaria successiva-errore-seguire. Quindi C-c C-f all'interno del buffer consente di saltare alla definizione di classe o funzione selezionata.

Ecco un esempio dei contenuti di tale buffer:

8 matches for "^ *\(def\|class\) " in buffer: leveling_utils.py 
11:def leveling(episodes_with_potential_associations_by_member): 
26:def _apply_leveling(sorted_episodes): 
41:def _set_non_chronic_associations(episode): 
73:def _apply_sub_to_procedural_association(assoc): 
94:def _set_chronic_associations(episode): 
102:def _set_associations_for_self(episode): 
118:def _set_to_actual(association): 
122:def _log_actual_associations(member, leveled_episodes): 

Tra l'altro, ha molte altre caratteristiche utili che a me, lo rendono un complemento necessario per python-mode.

+0

grazie, geniale! – DmitrySemenov

+0

Quando si esegue 'C-c C-o', come posso farlo * non * usare un buffer già aperto, invece aprirne uno nuovo? – Michael

0

La barra di velocità è buona, e un'altra bella alternativa è helm-imenu. Ho associato più chiavi per accedervi rapidamente da diversi contesti e usarlo per la maggior parte del tempo

Problemi correlati