Czy istnieje sposób, ewentualnie za pomocą pakietu, rekurencyjne wyświetlanie wszystkich plików (ze ścieżkami) i podkatalogów (lub przynajmniej pustych podkatalogów, ponieważ ścieżki do niepustych można uzyskać ze ścieżek zawarte w nim pliki) bieżącego katalogu?
Najbliżej, jaką mogłem znaleźć, jest projectile-find-file
funkcja projectile
pakietu (alternatywnie helm-projectile-find-file
funkcja helm-projectile
pakietu), ale wydaje się, że nie jest w stanie wyświetlić pustych folderów. Ponadto wydaje się, że działa tylko z Git i innymi repozytoriami kontroli wersji, ale może istnieć obejście tego ograniczenia.
helm
lubivy
, tj. Że wyniki będą wyświetlane w buforzehelm
lubivy
. Jeśli nie można spełnić obu wymagań, to drugie jest dla mnie ważniejsze.Odpowiedzi:
Zakładając, że używasz
ivy
, możesz użyć tej funkcjiźródło
helm
?helm
.ivy
jest dość lekki. Daj mu szansę.pliki-katalogowe-rekurencyjnie
(Myślę, że zostało to dodane w Emacs 25)
oto link do instrukcji: https://www.gnu.org/software/emacs/manual/html_node/elisp/Contents-of-Directories.html
Przykład
źródło
include-directories
sięt
? Pracuję nad Emacsem 24 i nie mogę tego teraz wypróbować, ale mogę to przetestować w domu za kilka godzin.Ta odpowiedź zakłada, że chcesz wyświetlić listę nazw plików i katalogów, zamiast uzyskiwać ich listę.
Nakazuje stosowanie standardowy Emacs
find-dired
,find-name-dired
lubfind-grep-dired
. Znalezione nazwy plików i katalogów są wyświetlane w buforze trybu Dired. (Możesz wykorzystać całą moc Dired do pracy nad wynikami.)Jeśli używasz biblioteki
find-dired+.el
, masz ulepszone wersje tych standardowych poleceń Emacsa, plush masz poleceniefind-time-dired
, które wyszukuje pliki, które są nowsze lub starsze niż określony znacznik czasu.źródło
find-dired
jest dokładnie tym, czego szukam, ale czy jest sposób na wydrukowanie tylko nazwisk? Ponieważ w przeciwnym razie pojedyncza nazwa pliku zajmuje wiele wierszy bez powodu, ponieważ absolutnie nie dbam o rozmiar, datę ani uprawnienia plików. Próbowałem uruchomić(setcar find-ls-option "-printf '%p\n'")
wcześniejfind-dired
, ale z jakiegoś powodu ten sposób nie chce otworzyć pliku po naciśnięciu klawisza Enter na elemencie.(
aby włączyć lub wyłączyć wyświetlanie więcej niż nazw plików. Przez większość czasu zostaję wyłączony (brak szczegółów) i po prostu włączam go na krótko, gdy chcę sprawdzić niektóre szczegóły.Zobacz https://github.com/technomancy/find-file-in-project
Istnieją polecenia do znalezienia pliku lub znalezienia katalogów. Ale nie jedno i drugie.
Jeśli chcesz tylko rekursywnie wyświetlić wszystkie podkatalogi i pliki w jednym buforze, w Emacsie wbudowane są dwa polecenia dla grup wiekowych:
M-x find-dired
. To zależy od narzędzia CLIfind
. W systemie Windows musisz zainstalować Cygwin lub MYSYS, który mafind
M-x find-lisp-find-dired
. Tak samo jakfind-dired
napisane w Lisp. Więc nie ma zależności od stron trzecich. Poza tym może rozpoznać ustawienia regionalne po wyjęciu z pudełka. Ale jest wolniejszy niżfind-dired
źródło
ls
lub funkcji Emacsafind-file
, z których oba zawierają zarówno pliki, jak i katalogi, w tym puste katalogi.find-dired
ifind-lisp-find-dired
rekurencyjnych w tym wykazie nie tylko zawartość bieżącego katalogu, ale również zawartość każdego z jego podkatalogów, Poddziałanie podkatalogów itp?Ta odpowiedź zakłada, że chcesz uzyskać listę Lisp nazw plików i katalogów, zamiast wyświetlać ich listę.
Jeśli korzystasz z biblioteki Dired + , możesz użyć funkcji
diredp-files-within
. (Aby go użyć, nie musisz znajdować się w buforze Dired).Działa to z każdą wersją Emacsa i jest bardziej ogólne niż
directory-files-recursively
.Możesz przekazać mu listę plików i katalogów, a ona działa rekurencyjnie w każdym z nich.
Lub możesz przekazać mu funkcję, która zwraca taką listę.
Jeśli istnieje bufor Dired dla katalogu, który jest przetwarzany, wówczas funkcja jest wywoływana w tym buforze, aby zwrócić listę plików do uwzględnienia.
Na przykład, jeśli funkcja jest,
dired-get-marked-files
wówczas uwzględniane są tylko zaznaczone pliki i podkatalogi.Możesz przekazać predykat, który każdy plik lub katalog musi spełniać. Dopasowywanie wyrażeń regularnych jest oczywiście jednym z rodzajów orzeczeń.
Możesz powiedzieć, aby nie podążał za symbolicznymi linkami.
źródło
źródło