Làm cách nào để đặt emacs làm trình quản lý tệp mặc định?


19

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?


9
Hệ điều hành của bạn là gì?
vẽ

1
Tôi đang sử dụng jessie debian.
godblessfq 13/07/2015

Câu trả lời:


17

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.


6

Đâ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:

nhập mô tả hình ảnh ở đây Tham khảo: https://help.ubfox.com/community/DefaultFileManager


Anand, nó hoạt động .. nhưng nó sẽ mở một cửa sổ emacs mới mọi lúc .. thật tốt khi sử dụng emacsclient sẽ mở một bộ đệm mới trong một phiên emacs đã mở ....
Madhavan

tôi nghĩ rằng, câu trả lời trước giải quyết vấn đề này ...
Madhavan

4

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


-4

Bạn có thể sử dụng Ranger. Tuy nhiên, bạn có thể định cấu hình xmonad để sử dụng emacs mặc định của windows khi bạn bắt đầu phiên


7
Vui lòng mở rộng câu trả lời của bạn để làm cho nó khép kín.
Dan
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.