Emacs: exibindo lista de sub-rotinas / funções / classes em um arquivo de origem

3

Eu tenho usado um editor pouco conhecido chamado "FTE" (ou eFTE) por anos; tem um utilitário legal que pode exibir a lista de sub-rotinas / funções / classes (ou qualquer coisa assim - dependendo do que regexp você definir em seu arquivo de configuração) em um arquivo de texto fonte (C, C ++, Fortran, ... o que você tem). Esta função permite-me saltar rapidamente de um ponto para outro em um arquivo de origem. Talvez o atalho original em FTE seja ^I (Control + I). O emacs tem uma funcionalidade semelhante? O Emacs é muito mais avançado que o FTE e eu ficaria surpreso se ninguém jamais desenvolvesse uma instalação desse tipo.

Obrigado Wirawan

    
por Wirawan Purwanto 07.08.2013 / 16:04

5 respostas

6

Experimente M-x occur RET exp RET - lista em um novo buffer todas as ocorrências do exp no buffer atual.

    
por 07.08.2013 / 20:11
4

A maioria das pessoas, é claro, dirá para você usar apenas um IDE moderno, mas eles não entendem o poder de% código%. Pessoalmente, eu uso ECB que faz com que meu emacs seja assim:

Ajaneladomeionoladoesquerdoéalistadefunçõesdoarquivodeorigematual.Clicandonomeioonomemoveocursorparaadefiniçãodafunção.

Parainstalar,sigaasinstruçõesnositedoBCEparainstalaroECBe,emseguida,adicioneestalinhaaoseuemacs(alterandoalocalizaçãodeacordo):

(add-to-list'load-path"~/.emacs-lisp/ecb/")

Outra opção é o CEDET , mas eu não o usei.

    
por 07.08.2013 / 16:36
1

O Emacs possui algumas maneiras de obter essa funcionalidade.

O método do peso mais leve é feito por meio das tags , que, com a personalização adequada, podem servir à maioria das finalidades. Depois de criar um arquivo de tags (que é feito em um shell, por exemplo, cd /path/to/project; ctags -e -R . ) e selecioná-lo via M-x visit-tags-table RET /path/to/TAGS RET , você pode, por exemplo, usar M-. em uma chamada de função para ir para a definição de função , M-x tags-search para percorrer os arquivos descritos na tabela de tags, & c. Consulte a página vinculada para uma descrição bastante detalhada das ferramentas disponíveis.

O método de maior peso é feito por Semântica , um léxico / analisador combinação implementada inteiramente no Emacs Lisp. Embora eu não esteja tão familiarizado com o Semântico quanto com as tags, a impressão que tenho é de que o Semantic incorre em um fardo de configuração inicial mais pesado, em troca de um resultado geralmente mais útil. Além da página de manual vinculada, (o artigo do Wiki Emacs) [ link pode ser uma ajuda adicional aqui

    
por 07.08.2013 / 16:39
1

Use Imenu :

  1. M-X imenu
  2. tab , All.Methods
  3. tab para ver todos os métodos
por 12.06.2018 / 10:46
0

Você disse "exibir a lista das sub-rotinas / funções / classes (ou qualquer coisa assim - dependendo de qual regexp você definir em seu arquivo de configuração) em um arquivo de texto de origem". Ignorando a parte em parêntesis no momento, à qual outros responderam, não está claro o que você quer dizer com uma função etc. sendo " em " um arquivo de origem.

Se você estiver perguntando sobre ver uma lista das funções, etc., que estão definidas em um determinado arquivo de origem, navegando entre suas definições, consulte Imenu no Emacs. Veja o manual do Emacs, nó Imenu . Veja também esta página EmacsWiki sobre Imenu :

    
por 01.09.2013 / 21:33