Expandir Dired para mostrar subdirectorios / archivos?

7

Una de las cosas más importantes que extraño de otros editores (por ejemplo, Sublime, Intellij) es la capacidad de ver la estructura del proyecto y expandir / minimizar los directorios según sea necesario para que pueda ver lo que me importa. ¿Hay algo como la jerarquía del modo Org donde puedo usar una tecla de acceso rápido para expandir un subdirectorio según sea necesario?

Andrés
fuente

Respuestas:

10

En Dired puede incluir un subdirectorio usando i, con el cursor en la línea del subdirectorio .

Puede hacer lo mismo en una línea de subdirección dentro de una lista de subdirecciones, de modo que puede enumerar cualquier número de niveles de cualquier cantidad de subdirecciones en el mismo búfer Dired.

$en una línea de encabezado de subdirectorio oculta / muestra ese listado de subdirección. Por lo tanto, corresponde más o menos con la función de expansión / contrato que solicitó. Con un prefijo arg (p C-u $. Ej. ) Muestra / oculta todo, lo que básicamente lo lleva de vuelta a una pizarra limpia, pero con líneas de encabezado de lista donde puede aplicar $para mostrar selectivamente sus listas.

Sepa también que C-x C-v RETactualizará la lista del directorio principal para un búfer Dired dado. En otras palabras, comienza de nuevo, leyendo el directorio de nuevo, sin listas de subdirecciones incluidas, etc. Por otro lado, gsolo actualiza las listas que se muestran actualmente, recogiendo los cambios realizados fuera de Emacs.

Puede usar los mismos lsmodificadores para cualquier listado de subdirecciones dado.

Dired no proporciona una vista de "árbol" de la jerarquía de directorios. Pero sigue siendo bastante útil.

Si usa la biblioteca de complementos Dired + , obtendrá bastante más funcionalidad, incluidos comandos que operan en archivos marcados y archivos marcados de subdirectorios marcados, ... encontrados de forma recursiva.

Con Dired +, incluso solo ies más útil: utilícelo para ir y venir entre una línea de subdirección en una lista principal y la lista de esa subdirección.

Dired + también facilita el uso de múltiples buffers de Dired, incluidos buffers separados para diferentes partes de un árbol (por ejemplo, diferentes subdirecciones). Y le permite crear fácilmente listas de archivos y directorios desde cualquier lugar, es decir, no desde el mismo directorio.

Para explorar y descubrir lo que puede hacer, use los menús de la barra de menú, comenzando con el menú Dir.

Dibujó
fuente
4

dired-subtree es una opción y tiene el siguiente aspecto:

ingrese la descripción de la imagen aquí

Si usa use-package , puede habilitarlo en su init.el y vincularlo con TAB y SHIFT-TAB con:

(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))

Escribí un poco sobre esto aquí .

Alvaro
fuente
1
Expande tu publicación para que sea una respuesta completa e independiente. En general, desaconsejamos las publicaciones solo de enlace como respuestas; si quieres que convierta tu publicación en comentario (donde solo el enlace es un problema menor), házmelo saber.
Dan
Hecho. Espero que sea mejor =)
alvaro
2

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

Speedbar es un programa Emacs Lisp que le permite crear un marco delgado especial con una lista de directorios especializados. Este listado tendrá tanto directorios como archivos filtrados. Luego puede cargar archivos en su marco emacs, o expandir los archivos para mostrar todas las etiquetas que están en ellos y saltar a esas etiquetas. También puede expandir múltiples directorios en su marco de barra de velocidad.

Bajo Powah
fuente
1
A pesar de que la pregunta específicamente menciona directa, sospecho que la barra de velocidad se ajustará muy bien a los criterios de OP, especialmente si proviene de otros IDE. Además, para aquellos a los que no les gusta dar a la barra de velocidad su propio marco, consulte Sr Speedbar que acopla la barra de velocidad en el marco actual.
nispio