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-directory
và / hoặc inode/directory
loại.
mimeapps.list
Bâ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.desktop
vớ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 dired
bộ đệ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ư emacsfm
trong /usr/bin/
. Bây giờ trong thiết bị đầu cuối thay vì sử dụng nautilus
hoặ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-utils
bằ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 folder
nó 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ì %1
sẽ vượt qua c:\Users
(ví dụ) và phá vỡ \U
nếu được đưa vào eval
câ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