Xóa tệp vào Thùng rác trên OS X


8

Có phương pháp nào tốt nhất, trong tương lai nhất để cài đặt emacs trên OS X để xóa các tệp vào thùng rác không?

Tôi đã thử các hướng dẫn ở đây :

(setq delete-by-moving-to-trash t)

(defun system-move-file-to-trash (file)
  "Use \"trash\" to move FILE to the system trash.
When using Homebrew, install it using \"brew install trash\"."
  (call-process (executable-find "trash")
    nil 0 nil
        file))

nhưng họ không làm việc:

Trashing...
(wrong-type-argument stringp nil)

Ngoài ra, cảm thấy sai lầm khi phải cài đặt một chương trình riêng để Emacs có thể dọn rác các tập tin. Hơn nữa, tôi sẽ không nhớ cài đặt chương trình "thùng rác" vào lần tới khi tôi cài đặt OS X sạch.

Cập nhật: Tôi đã thêm nó vào .emacs của tôi và xóa cuộc gọi đến trashvà nó dường như hoạt động. Tôi tự hỏi tại sao Emacs trên OSX mặc định đến ~/.local/share/Trashvị trí FreeDesktop .

(setq trash-directory "~/.Trash")

Bạn nên nộp báo cáo lỗi cho việc này.
mẫu

đã gửi một báo cáo lỗi.
Harvey


4
Bạn có thể muốn kiểm tra osx-trashgói trên MELPA github.com/lunaryorn/osx-trash.el
waymondo 24/08/2015

//, Ngay cả ELPA là Screwing này lên, rõ ràng: stackoverflow.com/questions/36187765/...
Nathan Basanese

Câu trả lời:


6

Sau đây là bắt buộc:

(setq delete-by-moving-to-trash t)
(setq trash-directory "~/.Trash")

Hàm move-file-to-trashnày có ba phép thử: (1)trash-directoryđược xác định hay không; (2) cho dù (fboundp 'system-move-file-to-trash); và, (3) (t . . . các nhận tất cả mà sử dụng ~/.local/share... Các thứ hai kiểm tra luôn thất bại trên OSX 10.6.8 khi xây dựng với các tùy chọn tiêu chuẩn --with-ns. Hiện tại tôi không có quyền truy cập vào các phiên bản khác của OSX.


Tuy nhiên, OS X al theo dõi tệp đến từ đâu nếu bạn sử dụng giao dịch từ công cụ tìm và điều đó không xảy ra ở đây - vì vậy lưu ý đây không phải là một triển khai đầy đủ nhưng thường đủ tốt
user151019

3

Xác định hàm system-move-file-to-trashtheo cách này là đủ:

(defun system-move-file-to-trash (file)
  (call-process "trash" nil nil nil file))

nếu bạn chưa trashcài đặt, Emacs sẽ cho bạn biết. sau đó, không đặt biến trash-directorytrashđiều đó cho bạn.

Về hành vi rác của Emacs:

move-file-to-thùng rác là một hàm Lisp được biên dịch tương tác trong 'files.el'.

(di chuyển tập tin vào thùng rác)

Di chuyển tệp (hoặc thư mục) có tên là FILENAME vào thùng rác. Khi 'xóa bằng cách di chuyển đến thùng rác' không phải là số không, chức năng này được gọi bằng 'xóa tệp' và 'xóa thư mục' thay vì xóa hoàn toàn các tệp.

Nếu chức năng 'system-move-file-to-thùng rác' được xác định, hãy gọi nó với FILENAME làm đối số. Mặt khác, nếu 'thư mục rác' không phải là số không, hãy di chuyển FILENAME vào thư mục đó. Mặt khác, rác FILENAME bằng cách sử dụng các quy ước freedesktop.org, như môi trường máy tính để bàn Gnome, KDE và XFCE. Emacs chỉ di chuyển các tập tin vào "thùng rác gia đình", bỏ qua các thùng rác theo khối lượng.

Tôi đoán (setq trash-directory "~/.Trash")là không hoạt động: Finder sẽ không thể khôi phục các tệp này vì nó (ít nhất) không biết các tệp này đến từ đâu.


3

Tôi đã sử dụng gói osx-thùng rác . Nó hoạt động có hoặc không có trashtiện ích dòng lệnh và tích hợp đúng với thư mục Thùng rác macOS.


Nếu không có trashtiện ích dòng lệnh, bạn có thể nghe thấy âm thanh rác. Với trashtiện ích dòng lệnh, nó nhanh hơn.
Raoul HATTERER
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.