2010-03-10 34 views
16

Trong Emacs bằng chế độ ido cho phép tôi mở tệp từ minibuffer bằng C-x C-f. Phương thức này chỉ mở một tệp tại một thời điểm. Làm cách nào để mở tất cả các tệp trong một thư mục hoặc chỉ định nhiều tệp để mở?Mở nhiều tệp cùng một lúc trong Emacs

+0

Tôi không biết nếu giải pháp này áp dụng (do đó nhận xét) nhưng kết hợp với emacsclient (xem http://stackoverflow.com/questions/4458245/how-to-set-emacs-to-open-new-files- in-current-instance-on-ubuntu-mint) bạn có thể sử dụng 'find' trong dòng lệnh. Để mở tất cả các tệp Clojure trong các emacs, tôi làm điều này: '' emacsclient 'find. -type f -name "* .clj" '' ' –

Trả lời

14

Bạn chỉ có thể cung cấp * làm tên tệp và nhấn Nhập; bạn sẽ được yêu cầu xác nhận và nếu bạn nhấn Nhập lần thứ hai, tất cả các tệp trong thư mục sẽ được mở.

Lưu ý rằng "mở tất cả các file trong một thư mục" liên quan đến việc mở đệm dired cho tất cả các thư mục con của nó.

Khi không sử dụng chế độ ido - tại lời nhắc tìm kiếm tập tin Emacs cơ bản - bạn có thể sử dụng cùng một * để mở tất cả các tệp trong một thư mục. Khi bạn sử dụng chế độ ido để tìm tệp, bạn luôn có thể nhấn C-f để quay lại lời nhắc tìm tập tin Emacs thông thường. (Bạn có thể sử dụng ido để tăng tốc độ nhận được một số thư mục bạn quan tâm đầu tiên và thả để find-file cơ bản trong đó.) Đó là một cách để tạo ra một tập tin mới với ido (người kia là Cj ràng buộc) ; Ngoài ra, nó cung cấp cho bạn một cách khác để sử dụng thủ thuật được đề cập ở trên là *.

+0

@ ~ unutbu: Bạn đang sử dụng phiên bản Emac nào? Tôi đang trên 23.1.50.1 (sử dụng ido.el đi kèm với Emacs) và tôi vừa kiểm tra xem nó hoạt động ngay cả khi không có cấu hình của tôi, có hoặc không có ido. –

+1

@ ~ unutbu: Trên thực tế, có một biến được gọi là 'tìm-tệp-wildcards' mà cần phải được đặt thành một giá trị không 'nil' để mở rộng ký tự đại diện để hoạt động. Xem '/ usr/share/emacs//lisp/files.el.gz' (xin điều chỉnh con đường này cho nền tảng của bạn, hoặc nói' Ch f tìm file ', sau đó nhấn '' một lần nữa với điểm trên 'file .el'), dòng 1314 (trong phiên bản của tôi), trong định nghĩa của hàm 'find-file'. Hãy cho tôi biết nếu điều này giúp và tôi sẽ chỉnh sửa câu trả lời để đưa nó vào tài khoản. –

+0

@Michal: Cảm ơn sự giúp đỡ của bạn! Tôi đã có '(yêu cầu 'ffap)' trong .emacs của tôi. Khi tôi loại bỏ '(yêu cầu 'ffap)', tôi nhận được hành vi mà bạn mô tả. – unutbu

2

File-tên groking là hư không gần như hữu ích như là tổng quát hơn mô hình khớp.

Trong Icicles file-name completion, bạn có thể mở bất kỳ số lượng các tập tin phù hợp với bất kỳ số lượng các mô hình, từ minibuffer cùng. Kết hợp mẫu có thể là chuỗi con, regexp, mờ hoặc tiền tố và bạn có thể kết hợp các mẫu bằng giao lộ và bổ sung.

Cũng như trong Ido, trong Icicles đầu vào minibuffer của bạn tự động lọc các ứng viên tập-name. Bạn có thể chọn từng ứng cử viên hoặc chọn tất cả những gì hiện đang khớp (sử dụng C-!).

(Bạn có thể dĩ nhiên sử dụng tập tin tên groking cũng có. Như với Emacs tập tin tên đầu vào nói chung, đánh RET trên một ký tự đại diện (grok) mẫu gửi nó đến find-file, mở tất cả các file phù hợp.)

Các vấn đề liên quan