Expansão Direcionado para mostrar subdiretórios / arquivos?

7

Uma das maiores coisas que sinto falta de outros editores (por exemplo, Sublime, Intellij) é a capacidade de ver a estrutura do projeto e expandir / minimizar diretórios conforme necessário para que eu possa ver o que me interessa. Existe algo como a hierarquia do modo de organização na qual eu posso usar uma tecla de atalho para expandir um subdiretório conforme necessário?

Andrew
fonte

Respostas:

10

Em Dired, você pode incluir um subdiretório usando i, com o cursor na linha de subdiretórios.

Você pode fazer o mesmo em uma linha de subdiretórios de uma listagem de subdiretórios, para listar qualquer número de níveis de qualquer número de subdiretórios no mesmo buffer Dired.

$em um cabeçalho de listagem de subdiretórios, a linha oculta / mostra essa listagem de subdiretórios. Portanto, corresponde mais ou menos ao recurso de expansão / contrato solicitado. Com um prefixo arg (por exemplo C-u $), ele mostra / oculta tudo, o que basicamente o leva de volta a uma lista limpa, mas com linhas de cabeçalho de listagem nas quais você pode aplicar $para mostrar seletivamente suas listagens.

Saiba também que C-x C-v RETirá atualizar a listagem do diretório principal para um determinado buffer Dired. Em outras palavras, ele recomeça, lendo o diretório novamente - sem listagens subdiretórias incluídas etc. Por outro lado, gapenas atualiza as listagens exibidas no momento, captando todas as alterações feitas fora do Emacs.

Você pode usar as mesmas lsopções para qualquer lista de subdiretórios.

Dired não fornece uma exibição em "árvore" da hierarquia de diretórios. Mas ainda é bastante útil.

Se você usar a biblioteca de complementos Dired + , obterá um pouco mais de funcionalidade, incluindo comandos que operam em arquivos marcados e arquivos marcados de subdiretórios marcados ... encontrados recursivamente.

Com Dired +, mesmo apenas ié mais útil - use-o para alternar entre uma linha de subdiretação em uma lista pai e a listagem desse subdir.

O Dired + também facilita o uso de vários buffers Dired, incluindo buffers separados para diferentes partes de uma árvore (por exemplo, subdiretórios diferentes). E permite criar facilmente listas de arquivos e diretórios de qualquer lugar, ou seja, não do mesmo diretório.

Para explorar e descobrir o que você pode fazer, use os menus da barra de menus, começando com menu Dir.

Desenhou
fonte
4

dired-subtree é uma opção e tem a seguinte aparência:

insira a descrição da imagem aqui

Se você estiver usando o use-package , poderá ativar no init.el e vincular-se ao TAB e SHIFT-TAB com:

(use-package dired-subtree :ensure t
  :after dired
  :config
  (bind-key "<tab>" #'dired-subtree-toggle dired-mode-map)
  (bind-key "<backtab>" #'dired-subtree-cycle dired-mode-map))

Eu escrevi um pouco sobre isso aqui .

alvaro
fonte
11
Expanda sua postagem para torná-la uma resposta completa e independente. Geralmente desencorajamos postagens somente de links como respostas; se você quiser que eu converta sua postagem em comentário (onde apenas o link é menos problemático), entre em contato.
Dan
Feito. Espero que seja melhor =)
alvaro
2

http://cedet.sourceforge.net/speedbar.shtml

Speedbar é um programa Emacs Lisp que permite criar uma moldura fina especial com uma lista de diretórios especializada. Esta listagem terá diretórios e arquivos filtrados. Você pode carregar os arquivos no seu quadro emacs ou expandir os arquivos para exibir todas as tags que estão nelas e pular para essas tags. Você também pode expandir vários diretórios no seu quadro da barra de velocidade.

Low Powah
fonte
11
Embora a pergunta mencione especificamente direcional, eu suspeito que a barra de velocidade atenda muito bem aos critérios do OP, especialmente vindo de outros IDEs. Além disso, para aqueles que não gostam de dar ao seu próprio quadro o Speedbar, consulte Sr Speedbar, que encaixa o Speedbar no quadro atual.
Nispio