Một số chương trình như firefox có các nút mà khi nhấp vào sẽ mở trình quản lý tệp để duyệt tệp. Làm cách nào để tôi mở nó trong emacs với chế độ chuyển hướng trên Debian Linux?
Một số chương trình như firefox có các nút mà khi nhấp vào sẽ mở trình quản lý tệp để duyệt tệp. Làm cách nào để tôi mở nó trong emacs với chế độ chuyển hướng trên Debian Linux?
Câu trả lời:
Phụ thuộc vào môi trường máy tính để bàn của bạn, phương pháp đặt ứng dụng mặc định có thể khác nhau. Điều đó nói rằng, nhiều môi trường máy tính để bàn tôn trọng các hiệp hội trong ~/.local/share/applications/mimeapps.listđó bạn có thể thiết lập một hiệp hội cho các loại application/x-directoryvà / hoặc inode/directoryloại.
mimeapps.listBây giờ trông tôi như thế này:
[Default Applications]
application/x-directory=emacs-dired.desktop
inode/directory=emacs-dired.desktop
Trong cùng một thư mục tôi có một tệp được gọi emacs-dired.desktopvới nội dung sau:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=emacsclient --eval '(dired "%f")'
Name=Dired
Comment=Emacs Dired
Khi phiên bản Emacs tồn tại lâu của tôi chạy một máy chủ ( M-x server-start) và tôi nhấp vào, giả sử, biểu tượng thư mục trong danh sách Tải xuống trong Icecat, một diredbộ đệm mới được mở.
Điều này thực sự làm việc cho tôi bây giờ. Cảm ơn bạn đã đặt câu hỏi --- nếu không tôi sẽ không thiết lập điều này.
Đây là cách tạo emacs làm trình quản lý tệp mặc định trong ubfox.
Đầu tiên chúng ta phải viết một tập lệnh sẽ đóng vai trò là người quản lý tập tin của chúng tôi.
#!/usr/bin/env python
import os
import sys
def main():
if len(sys.argv) > 1:
dirname = sys.argv[1]
else:
dirname = '~'
os.system('emacs --eval \'(dired "{}")\'%'.format(dirname))
# you can use emacsclient if you are running emacs server
if __name__ == "__main__":
main()
Lưu cái này như emacsfmtrong /usr/bin/. Bây giờ trong thiết bị đầu cuối thay vì sử dụng nautilushoặc nautilus /foo/bar, chúng ta có thể sử dụng emacsfm hoặc emacsfm /foo/bar.
Bây giờ chúng ta cần đặt cái này làm trình quản lý tập tin mặc định. Cài đặt exo-utilsbằng
sudo apt-get install exo-utils
và chạy nó
exo-preferred-applications
Nó mở ra một cửa sổ mới. Chuyển đến Tiện ích -> Trình quản lý tệp -> Khác và nhập / usr / bin / emacsfm "% s" trong đó.
Bạn có thể tải xuống chrome và nếu nhấp vào show in foldernó sẽ mở emacs chuyển hướng :-)
Cập nhật:
Tham khảo: https://help.ubfox.com/community/DefaultFileManager
Mặc dù câu hỏi dành riêng cho Linux, tôi đã đi và tìm ra nó cho Windows (vì điều này thôi thúc tôi tìm cách làm điều đó cho chính mình).
Thật thú vị, bạn không phải gọi Dired, chỉ cần chuyển một thư mục dưới dạng tệp. Điều này giúp tiết kiệm rất nhiều rắc rối trên Windows vì %1sẽ vượt qua c:\Users(ví dụ) và phá vỡ \Unếu được đưa vào evalcâu lệnh, trong khi chuyển nó dưới dạng tệp sẽ phân tích chính xác nó.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shell]
@="Dired"
[HKEY_CLASSES_ROOT\Drive\shell\Dired]
@="Open in Dired"
[HKEY_CLASSES_ROOT\Drive\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"
[HKEY_CLASSES_ROOT\Directory\shell]
@="XYplorer"
[HKEY_CLASSES_ROOT\Directory\shell\Dired]
@="Open in XYplorer"
[HKEY_CLASSES_ROOT\Directory\shell\Dired\command]
@="\"%path/to/emacsclientw%\" %1"
Tham khảo: Bảy diễn đàn - Cách thay đổi Trình quản lý tệp mặc định