Làm thế nào tôi có thể tạo một bộ đệm dired liệt kê tất cả các tệp đang mở?


9

Tôi có một cơ chế để ghi các mục vào đĩa từ diredbộ đệm. Thật không may, tập tin tôi đã vá được rải khắp hệ thống tập tin. Làm cách nào để tạo diredbộ đệm từ tất cả các tệp đang mở?


có thể trùng lặp của Lập trình chèn file vào Dired đệm
Drew

@Drew Tôi sẽ tranh luận không phải là một bản sao, ít nhất là không nghiêm ngặt. Câu hỏi này đơn giản sẽ trở thành 'Làm thế nào để tôi có được danh sách tất cả các bộ đệm mở được liên kết với các tệp?'.
Sean Allred

@Drew Cụ thể:(sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)
Sean Allred

Thông tin được thêm vào là buffer-listtồn tại (mà tôi đã biết) và buffer-file-nametrả về nilkhi không có tệp (mà tôi không biết). Bản sao được đề xuất của bạn không chứa thông tin này hoặc có nhu cầu.
Sean Allred

1
@Drew Theo kinh nghiệm của tôi, cố gắng biến mọi câu hỏi thành mô-đun nhất có thể là một bất lợi chứ không phải là một lợi thế. Nó làm giảm tính hữu dụng với những người vấp phải điều này từ Google và sẽ không bao giờ đăng ký đơn giản vì họ là trường hợp sử dụng của họ . Nếu tôi muốn thông qua mọi câu hỏi trên TeX.SE và các câu hỏi bị lừa có cùng câu trả lời theo khái niệm, kiểm duyệt sẽ trở thành một cơn ác mộng và trang web sẽ chìm vào bóng tối.
Sean Allred

Câu trả lời:


12

Các diredlệnh chấp nhận một danh sách các tập tin tên như là đối số. Chỉ cần tạo một và vượt qua nó:

(dired
 (cons
  "Open Files"
  (sort (remove nil (mapcar #'buffer-file-name (buffer-list)))
       #'string<))) 

Tôi nghĩ rằng điều này bỏ lỡ một tệp: khi bạn chuyển một danh sách để chuyển hướng phần tử đầu tiên trong danh sách đó được lấy làm tên thư mục, phần còn lại là các tệp. Làm thế nào về điều này:(dired (cons "*Open Files*" (sort (remove nil (mapcar #'buffer-file-name (buffer-list))) #'string<)))
glucas

Chỉ cần một lưu ý: điều này sẽ sai nếu có một bộ đệm liên kết tệp chưa được lưu vào đĩa.
Sean Allred

1

Chỉ cần cung cấp một danh sách các chuỗi, cho hàm dired, ví dụ:

(dired '("custom dired" ".emacs.d/init.el" "mydotfiles/.bashrc"))

BIÊN TẬP

Câu trả lời @Malabarba là cách tốt nhất để đi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.