Navegador de diretório baseado em árvore?

38

Eu amo dired, mas às vezes (particularmente ao filmar screencasts) quero ver a estrutura em árvore de um diretório e seus filhos, a la the tree (1) command. Existe um navegador de diretório orientado a árvore para o Emacs?

Avdi
fonte
Certamente o ecb pode fazer isso.
Edgar Aroutiounian
2
@EdgarAroutiounian Se for esse o caso, eu recomendo fazer uma resposta fora dele :)
Trevoke

Respostas:

23

Além disso, você pode usar a subárvore dired do repositório dired-hacks .

Aqui você tem uma breve demonstração e captura de tela da minha configuração, onde pressiono ipara detalhar a pasta e ;voltar:

  (define-key dired-mode-map "i" 'dired-subtree-insert)
  (define-key dired-mode-map ";" 'dired-subtree-remove)

subárvore dired

PS: Eu também estou ciente de direx que se parece com isso direx::

kmicu
fonte
Eu tentei subárvore dired, mas a estrutura da árvore não era tão visualmente aparente quanto eu estava procurando. Direx parece perfeito, eu vou tentar.
Avdi 29/09/14
Sou esse porque a sugestão do Direx parece ideal para o meu caso de uso de colocar uma visualização em árvore de diretórios na frente e no centro. Isso não deve descartar as excelentes sugestões de @ keelerm.
Avdi 29/09/14
Você pode obter funcionalidades equivalentes usando uma ligação de chave: (define-chave dired-mode-map "i" 'dired-subtree-toggle). Eu gosto de mapeá-lo para "Cc i" embora, já que o dired também insira o subdiretório usando "i".
Joe
22

Existem algumas opções para isso.

Você pode verificar dirtree , que é baseado em dired.

Há também uma porta emacs do NERDTree do vim chamada neotree .

Ambos são excelentes pacotes, embora eu tenha tendência a favorecer o neotree, pois possui ligações convenientes para permitir que eu crie e exclua arquivos e diretórios. Não acredito que o dirtree tenha esse suporte, embora eu possa estar errado. Já faz um tempo desde a última vez que o usei.

keelerm
fonte
Obrigado, enquanto direx parece ser ideal para minha necessidade imediata, você me lembrou que eu preciso passar algum tempo com o neotree.
Avdi 29/09/14
9

Você pode invocar diredcom um argumento, ie. C-u C-x de depois de solicitar o diretório, ele também permitirá que você modifique as opções passadas para ls. Adicione Re diredlistará recursivamente todos os subdiretórios, cada um em sua própria seção.

Se você deseja apenas ver o conteúdo de alguns subdiretórios, pressione iquando o ponto estiver no nome de um diretório.

Você também pode usar o find-diredcomando, com ou sem opções. Em vez de mostrar subdiretórios em sua própria seção, imprime o caminho completo de cada arquivo. Você pode alternar a exibição dos detalhes do arquivo (para que os caminhos longos se ajustem horizontalmente na tela.

Tudo isso é incorporado.

Arquivo não encontrado
fonte
7

Você já experimentou o Emacs M-x speedbar? :-) antes de instalar um novo pacote, tentaria uma solução embutida ...

Dieter.Wilhelm
fonte
1
… E mais um voto positivo por sugerir um item incorporado.
GergelyPolonkai
4

Há também ztree . Eu o uso quando preciso dar uma olhada na estrutura de diretórios, embora geralmente use o vanilla Dired para todas as outras coisas.

Mark Karpov
fonte
1

Dê uma olhada no sidebar.el .

Como o repositório disse, é um explorador de arquivos personalizável com integração com o git, mas não é só isso. Você também pode obter a lista de buffers e suas donzelas com o mu4e.

insira a descrição da imagem aqui

azzamsa
fonte
1

O Treemacs funciona. Permite que você tenha uma estrutura semelhante a uma árvore.

decabytes
fonte
Esta é uma resposta ou uma pergunta (duas perguntas)? É praticamente uma resposta apenas de link, se for uma resposta. Como tal, corre o risco de ser excluído. Consulte emacs.stackexchange.com/help/how-to-ask .
Drew
1
@ Drew, fwiw Acho que isso é apenas uma questão de linguagem / interpretação. Treemacs é uma sugestão absolutamente aceitável para a pergunta do OP.
EdwardGarson