2010-03-10 13 views
16

W Emacsie w trybie ido pozwala mi otworzyć plik z minibufora za pomocą C-x C-f. Ta metoda otwiera tylko jeden plik na raz. Jak otworzyć wszystkie pliki w katalogu lub określić więcej niż jeden plik do otwarcia?Otwieranie wielu plików naraz w Emacs

+0

Nie wiem, czy to rozwiązanie ma zastosowanie (stąd komentarz), ale w połączeniu z emacsclient (zobacz http://stackoverflow.com/questions/4458245/how-to-set-emacs-to-open-new-files- in-current-instance-on-ubuntu-mint) możesz również użyć polecenia 'find' w linii poleceń. Aby otworzyć wszystkie pliki Clojure w emacs, robię to: '' emacsclient 'find. -type f -name "* .clj" '' ' –

Odpowiedz

14

Można podać tylko * jako nazwę pliku i nacisnąć Enter; zostaniesz poproszony o potwierdzenie, a jeśli naciśniesz po raz drugi Wprowadź, wszystkie pliki w katalogu zostaną otwarte.

Należy zauważyć, że "otwieranie wszystkich plików w katalogu" wymaga otwarcia buforów scalonych dla wszystkich jego podkatalogów.

Kiedy nie użyciu ido-mode - w podstawowych Emacs znaleźć-file wiersz - można użyć tej samej * otworzyć wszystkie pliki w katalogu. Kiedy używasz trybu ido do znajdowania plików, zawsze możesz nacisnąć C-f, aby powrócić do zwykłego monitu o plik wyszukiwania Emacs. (Możesz użyć ido, aby przyspieszyć dostanie się do jakiegoś katalogu, który cię interesuje, i upuść go do podstawowego pliku-bazy.) Jest to jeden ze sposobów utworzenia nowego pliku z ido (drugim jest powiązanie Cj) ; również daje ci inny sposób użycia wyżej wspomnianej sztuczki *.

+0

@ ~ unutbu: Którą wersję Emacsa używasz? Mam 23.1.50.1 (używając ido.el w pakiecie z Emacsem) i właśnie sprawdziłem, czy działa nawet bez mojej konfiguracji, z ido lub bez. –

+1

@ ~ unutbu: Właściwie istnieje zmienna o nazwie 'find-file-wildcards', która musi być ustawiona na wartość inną niż' nil', aby rozszerzenie wildcard działało. Zobacz '/ usr/share/emacs//lisp/files.el.gz' (dostosuj ścieżkę do swojej platformy lub powiedz' Ch f find-file ', następnie ponownie naciśnij' 'z punktem na' plikach .el'), linia 1314 (w mojej wersji), w definicji funkcji 'find-file'. Daj mi znać, jeśli to pomoże, a ja edytuję odpowiedź, aby wziąć to pod uwagę. –

+0

@Michal: Dziękujemy za pomoc! Miałem '(wymagają 'ffap)' w moim .emacs. Kiedy usuwam '(require 'ffap)', dostaję zachowanie, które opisujesz. – unutbu

2

Granie z użyciem nazwy pliku nie jest tak użyteczne, jak bardziej ogólne dopasowanie do wzorca.

W Icicles file-name completion można otworzyć dowolną liczbę plików pasujących do dowolnej liczby wzorów z tego samego minibufora. Dopasowywanie wzorców może być podciągiem, wyrażeniem regularnym, rozmytym lub prefiksem i można łączyć wzorce za pomocą przecinania i uzupełniania.

Podobnie jak w Ido, w sopliach twoje wejście do minibufora dynamicznie filtruje kandydatów na nazwy plików. Możesz wybrać poszczególnych kandydatów lub wybrać wszystkie aktualnie pasujące (używając C-!).

(można oczywiście użyć file-name groking również. Podobnie jak Emacs file-name wejścia ogólnie, uderzając RET na asterisk (grok) wzór wysyła go do find-file, który otwiera wszystkie pasujące pliki.)

Powiązane problemy